Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chipslays/telegraph
📝 PHP client for Telegraph API.
https://github.com/chipslays/telegraph
image-upload image-uploader php telegraph telegraph-api telegraph-client telegraph-publishing
Last synced: 8 days ago
JSON representation
📝 PHP client for Telegraph API.
- Host: GitHub
- URL: https://github.com/chipslays/telegraph
- Owner: chipslays
- License: mit
- Created: 2021-02-05T17:36:49.000Z (almost 4 years ago)
- Default Branch: v3.x
- Last Pushed: 2023-08-10T11:23:23.000Z (over 1 year ago)
- Last Synced: 2024-04-23T08:08:15.865Z (7 months ago)
- Topics: image-upload, image-uploader, php, telegraph, telegraph-api, telegraph-client, telegraph-publishing
- Language: PHP
- Homepage:
- Size: 67.4 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Telegraph API Client for PHP >=8.0
Telegraph is an anonymous blogging platform, a free publishing tool created by Telegram.
## Installation
Install latest 3.x version via Composer.
```bash
composer require chipslays/telegraph
```## Usage
### Easy Peasy Mode
```php
$client = new Telegraph\Client;$account = $client->createAccount('johndoe', 'John Doe', 'https://example.com');
$page = $account->createPage('Hello World', 'This is a Hello World example.');
echo $page->getUrl(); // https://telegra.ph/Hello-World-10-21-12
```### Hard Mode
```php
use Telegraph\Client;
use Telegraph\Element;
use Telegraph\File;
use Telegraph\Types\Account;
use Telegraph\Types\NodeElement;$client = new Client;
$account = $client->createAccount('johndoe', 'John Doe', 'https://example.com');
$page = $account->createPage(
'Rich Example',
[
Element::text("Line 1\nLine 2\nLine 3\n\n"),
Element::line(),
Element::bigHeading("H3 text"),
Element::smallHeading("H4 text"),
Element::line(),
Element::strongText("Strong text\n"),
Element::italicText("Itaic text\n"),
Element::underlineText("Underline text\n"),
Element::strikeText("Strike text\n"),
Element::emphasizedText("Em text\n"),
Element::code("Code text\n"),
Element::link("This is link\n", 'https://github.com/chipslays/telegraph'),
Element::space(), // add a new line otherwise the previous tags will be in heading
new NodeElement('h3', [new NodeElement('a', 'This is link in title, wow!', ['href' => '#'])]),
Element::space(), // add a new line otherwise the previous tags will be in blockquote
Element::blockquote("Blockquote text\n"),
Element::line(),
Element::pre("echo 'Hello Pre Text!';"),
Element::line(),
Element::smallHeading("Items List"),
Element::list(['Item 1', 'Item 2', 'Item 3']),
Element::smallHeading("Numeric List"),
Element::list(['Item 1', 'Item 2', 'Item 3'], true),
Element::line(),
Element::image('https://images.unsplash.com/photo-1541963463532-d68292c34b19?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxleHBsb3JlLWZlZWR8Mnx8fGVufDB8fHx8&w=1000&q=80', 'Image Caption'),
// Element::image(File::upload('/path/to/local/image.jpg')),
Element::line(),
Element::smallHeading("Embed Blocks"),
Element::youtube('https://www.youtube.com/watch?v=dQw4w9WgXcQ', 'Youtube Caption'),
Element::vimeo('https://vimeo.com/340057344', 'Vimeo Caption'),
Element::twitter('https://twitter.com/elonmusk/status/1354174279894642703', 'GAMESTONK!!1!1'),
// Element::embed('vendorName', 'https://example.com', 'Universal method for embed.'),
],
);echo $page->getUrl(); // https://telegra.ph/Rich-Example-10-21
```Upload files to Telegraph server.
```php
use Telegraph\File;// Returns string
$imageUrl = File::upload('/path/to/local/image.jpg');// Can pass url
$imageUrl = File::upload('https://example.com/image.jpg');// Returns array with preserved keys
// ['my_nudes' => 'https://telegra.ph/*, ....]
$imageUrl = File::upload([
'my_nudes' => '/path/to/local/image.jpg',
'home_video_with_my_gf' => '/path/to/local/video.mp4',
]);
```## Examples
You can found examples [here](/examples).
[Here](/examples) are really almost all [popular use cases](/examples) Telegraph API.
## Documentation
Not found.
So, code **well documencated**, `Client` class supports all methods of Telegraph API, just start typing e.g. `$client->createAccount(...)` and your IDE helps you.
Use the `Element` helper class to create rich content or use raw `NodeElement` for more flexible stuff.
`Element` class uses `NodeElement` under the hood.
See how it work [here](/src/Element.php).
Good luck stanger.
## License
The MIT License (MIT). Please see [License File](/LICENSE.md) for more information.