chapter-three / apple-news-api
Push content to Apple News.
Installs: 262 409
Dependents: 2
Suggesters: 0
Security: 0
Stars: 38
Watchers: 19
Forks: 26
Open Issues: 17
Requires
- php: >=5.4.0
- php-curl-class/php-curl-class: ^4.6
Requires (Dev)
- mikey179/vfsstream: 1.5.*
- phpdocumentor/phpdocumentor: ~2.8
- phpunit/phpunit: 4.7.*
README
AppleNewsAPI\PublisherAPI
is a PHP library that allows you to publish content to Apple News. You can also retrieve and delete articles you’ve already published, and get basic information about your channel and sections.
AppleNewsAPI\Document
is a PHP library that helps construct documents in the Apple News JSON format.
Installation
composer require chapter-three/apple-news-api
or
git clone git@github.com:chapter-three/AppleNewsAPI.git cd AppleNewsAPI curl -sS https://getcomposer.org/installer | php ./composer.phar install
Document class Quick Start and Examples
use ChapterThree\AppleNewsAPI\Document; use ChapterThree\AppleNewsAPI\Document\Components\Body; use ChapterThree\AppleNewsAPI\Document\Layouts\Layout; use ChapterThree\AppleNewsAPI\Document\Styles\ComponentTextStyle; $obj = new Document(uniqid(), 'title', 'en', new Layout(7, 1024)); $obj->addComponent(new Body('body text')) ->addComponentTextStyle('default', new ComponentTextStyle()); $json = $obj->json();
PublisherAPI class Quick Start and Examples
$api_key_id = ""; $api_key_secret = ""; $endpoint = "https://endpoint_url"; $PublisherAPI = new ChapterThree\AppleNewsAPI\PublisherAPI( $api_key_id, $api_key_secret, $endpoint );
GET Channel
// Fetches information about a channel. $response = $PublisherAPI->get('/channels/{channel_id}', [ 'channel_id' => CHANNEL_ID ] );
GET Sections
// Fetches a list of all sections for a channel. $response = $PublisherAPI->get('/channels/{channel_id}/sections', [ 'channel_id' => CHANNEL_ID ] );
GET Section
// Fetches information about a single section. $response = $PublisherAPI->get('/sections/{section_id}', [ 'section_id' => SECTION_ID ] );
GET Article
// Fetches an article. $response = $PublisherAPI->get('/articles/{article_id}', [ 'article_id' => ARTICLE_ID ] );
POST Article
// Publishes a new article to a channel. // $response contains an article ID and revision ID. $response = $PublisherAPI->post('/channels/{channel_id}/articles', [ 'channel_id' => CHANNEL_ID ], [ // List of files to POST 'files' => [], // optional. A list of article assets [uri => path] // JSON metadata string 'metadata' => $metadata, // required 'json' => '', // required. Apple News Native formatted JSON string. ] );
UPDATE Article
// Metadata information `revision` is required. $metadata = json_encode([ 'data' => [ 'revision' => REVISION_ID ] ]); // Updates an existing article. // See $response variable to get a new revision ID. $response = $PublisherAPI->post('/articles/{article_id}', [ 'article_id' => ARTICLE_ID ], [ // List of files to POST 'files' => [], // optional. A list of article assets [uri => path] // JSON metadata string 'metadata' => $metadata, // required // Apple News Native formatted JSON string. See examples. 'json' => '', // required. ] );
DELETE Article
// Deletes an article. $response = $PublisherAPI->delete('/articles/{article_id}', [ 'article_id' => ARTICLE_ID ] );
Contribute
Run Unit Tests
./vendor/bin/phpunit -v --colors=auto --bootstrap vendor/autoload.php tests
To test PublisherAPI GET/POST/DELETE methods use the following pattern:
./vendor/bin/phpunit -v --colors=auto --bootstrap vendor/autoload.php tests/PublisherAPITest.php [API_KEY] [API_SECRET] [ENDPOINT_URL] [METHOD] [ENDPOINT_PATH]
Generate PHPDoc
git clone --branch gh-pages git@github.com:chapter-three/AppleNewsAPI.git ../AppleNewsAPI_phpdoc ./vendor/bin/phpdoc run --title='chapter-three/apple-news-api v'$(cat composer.json | jq -r '.version') -d ./ -i vendor/,tests/ -t ../AppleNewsAPI_phpdoc