Download the PHP package siapepfrance/pinterest-php-client without Composer
On this page you can find all versions of the php package siapepfrance/pinterest-php-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download siapepfrance/pinterest-php-client
More information about siapepfrance/pinterest-php-client
Files in siapepfrance/pinterest-php-client
Package pinterest-php-client
Short Description PHP client for the Pinterest API
License Apache-2.0
Informations about the package pinterest-php-client
Pinterest API V5+ - PHP
A PHP client for the official Pinterest API V5+.
Requirements
- PHP 5.4 or higher (actively tested on PHP >=7.1)
- cURL
- Registered Pinterest App
Get started
To use the Pinterest API V5+ you have to register yourself as a developer and create an application. After you've created your app you will receive a app_id
and app_secret
.
The terms
client_id
andclient_secret
are in this caseapp_id
andapp_secret
.
Installation
The Pinterest API V5+ wrapper is available on Github only so you need two steps to install it.
The Pinterest API V5+ client is available on Composer
If you're not using Composer (which you should start using, unless you've got a good reason not to) you can include the autoload.php
file in your project.
Simple Example
After you have initialized the class you can get a login URL:
Check the Pinterest documentation for the available scopes.
After your user has used the login link to authorize he will be send back to the given REDIRECT_URI
. The URL will contain the code
which can be exchanged into an access_token
. To exchange the code for an access_token
and set it you can use the following code:
Get the user's account
To get the profile of the current logged in user you can use the UserAccounts::get(<array>);
method.
Models
The API wrapper will parse all data through it's corresponding model. This results in the possibility to (for example) directly echo
your model into a JSON string.
Models also show the available fields (which are also described in the Pinterest documentation). By default, not all fields are returned, so this can help you when providing extra fields to the request.
Available models
User Accounts
Boards
Pins
Ad Accounts
Retrieving extra fields
If you want more fields you can specify these in the $data
(GET requests) or $fields
(PATCH requests) array. Example:
Response:
Collection
When the API returns multiple models (for instance when your requesting the pins from a board) the wrapper will put those into a Collection
.
The output of a collection contains the data
and page key
. If you echo the collection you will see a json encoded output containing both of these. Using the collection as an array will only return the items from data
.
Available methods for the collection class:
Get all items
all()
Returns: array<Model>
Get item at index
get( int $index )
Returns: Model
Check if collection has next page
hasNextPage()
Get the next page if collection has next page
getNextPage()
Returns: Boolean
Get pagination data
Returns an array with an URL
and cursor
for the next page, or false
when no next page is available.
pagination
Returns: Array
Available methods
Every method containing a
data
array can be filled with extra data. This can be for example extra fields or pagination.
Authentication
The methods below are available through $pinterest->auth
.
Get login URL
getLoginUrl(string $redirect_uri, array $scopes, string $response_type = "code");
Check the Pinterest documentation for the available scopes.
Note: since 0.2.0 the default authentication method has changed to code
instead of token
. This means you have to exchange the returned code for an access_token.
Set redirect_uri (this method is useful when using the authorization_code flow to authenticate )
setRedirectUri( string $redirect_uri );
Get access_token
getOAuthToken( string $code );
Set access_token
setOAuthToken( string $access_token );
Refresh the expired access_token thanks to the refresh token
refreshOAuthToken( string $refresh_token );
Get state
getState();
Returns: string
Set state
setState( string $state );
This method can be used to set a state manually, but this isn't required since the API will automatically generate a random state on initialize.
Rate limit
Note that you should call an endpoint first, otherwise
getRateLimit()
will returnunknown
.
Get limit
getRateLimit();
This method can be used to get the maximum number of requests.
Returns: int
Get remaining
getRateLimitRemaining();
This method can be used to get the remaining number of calls.
Returns: int
User Accounts
The methods below are available through $pinterest->user_accounts
.
You also cannot access a user’s boards or Pins who has not authorized your app.
Get logged in user account
get( array $data );
Returns: UserAccount
Get logged in user account analytics
getAnalytics( array $data );
Returns: Collection<UserAccountAnalytic>
Boards
The methods below are available through $pinterest->boards
.
List boards
listBoards( array $data );
Returns: Collection<Board>
Get board
get( string $boardId, array $data );
Returns: Board
Create board
create( array $data );
Returns: Board
Edit board
edit( string $boardId, array $data, string $fields = null );
Returns: Board
Get board pins
delete( string $boardId, array $data );
Returns: Collection<Pin>
Delete board
delete( string $boardId, array $data );
Returns: True|PinterestException
Sections
The methods below are available through $pinterest->sections
.
Create section on board
create( string $boardId, array $data );
Returns: Section
Update section on board
create( string $boardId, string $sectionId, array $data );
Returns: Section
Get sections on board
get( string $boardId, array $data );
Returns: Collection<Section>
Get pins from section
Note: Returned board ids can't directly be provided to
pins()
. The id needs to be extracted from \<BoardSection xxx>
get( string $boardId, string $sectionId, array $data );
Returns: Collection<Pin>
Delete section
delete( string $boardId, string $sectionId );
Returns: boolean
Pins
The methods below are available through $pinterest->pins
.
Get pin
get( string $pinId, array $data );
Returns: Pin
Get pins from board
fromBoard( string $boardId, array $data );
Returns: Collection<Pin>
Create pin
create( array $data );
Creating a pin with an image hosted somewhere else:
Creating a pin with a base64 encoded image on the server:
Returns: Pin
Edit pin
edit( string $pinId, array $data, string $fields = null );
Returns: Pin
Delete pin
delete( string $pinId, array $data );
Returns: True|PinterestException
Ad Accounts
The methods below are available through $pinterest->ad_accounts
.
You also cannot access a user’s boards or Pins who has not authorized your app.
Get ad accounts
get( array $data );
Returns: AdAccount
Get ad accounts analytics
getAnalytics( string $adAccountId, array $data );
Returns: Collection<AdAccountAnalytic>
Get ad accounts campaigns
getCampaigns( string $adAccountId, array $data );
Returns: Collection<AdCampaign>
Get ad account campaign analytics
getCampaignAnalytics( string $adAccountId, array $data );
Returns: Collection<AdCampaignAnalytic>
Get ad account groups
getAdGroups( string $adAccountId, array $data );
Returns: Collection<AdGroup>
Get ad account group analytics
getAdGroupAnalytics( string $adAccountId, array $data );
Returns: Collection<AdGroupAnalytic>
Get ad account ads
getAds( string $adAccountId, array $data );
Returns: Collection<Ad>
Get ad account ad analytics
getAdAnalytics( string $adAccountId, array $data );
Returns: Collection<AdAnalytic>
Examples
Use can take a look at the ./demo
directory for a simple example.
Let me know if you have an (example) project using the this library.
All versions of pinterest-php-client with dependencies
ext-curl Version *