This is the Ruby gem for interacting with the official Pinterest REST API.
This gem uses Faraday and Hashie to make requests and parse the responses.
Battle-tested at Shopseen to help merchants sell more.
Obtain an access token from Pinterest. You can generate one here.
$ gem install pinterest-api
require 'pinterest-api'
client = Pinterest::Client.new(ACCESS_TOKEN)
# Get the authenticated user's Pinterest account info
client.me
# Get the pins that the authenticated user likes
client.get_likes
# Get the authenticated user's followers
client.get_followers
# Get the boards that the authenticated user follows
client.get_followed_boards
# Get the Pinterest users that the authenticated user follows
client.get_followed_users
# Get the interests that the authenticated user follows
client.get_followed_interests
# Follow a user
client.follow_user('shopseen')
# Unfollow a user
client.unfollow_user('shopseen')
# Follow a board
client.follow_board(<board_id>)
# Unfollow a board
client.unfollow_board(<board_id>)
# Follow an interest
> This endpoint is no longer part of the Pinterest documentation, and has always returned an error
client.follow_interest(<interest_id>)
# Unfollow an interest
> This endpoint is no longer part of the Pinterest documentation, and has always returned an error
client.unfollow_interest(<interest_id>)
# Get all of the authenticated users's pins
client.get_pins
# Get all of the authenticated users's boards
client.get_boards
# Search for the authenticated users's pins related to shoes
client.get_pins(query: 'shoes')
# Search for the authenticated users's boards related to shoes
client.get_boards(query: 'shoes')
# Get the account info for a Pinterest user
client.get_user('<username>')
You can create pins as follows
@client.create_pin({
board: '<username>/<board_name>' OR '<board_id>',
note: 'My note'
link: 'https://www.google.com',
image_url: 'http://marketingland.com/wp-content/ml-loads/2014/07/pinterest-logo-white-1920.png'
})
You can also upload your own image file like so
@client.create_pin({
board: '1154178055932271277',
note: 'Test from ruby gem',
link: 'https://www.shopseen.com',
image: Faraday::UploadIO.new(your_file_path, "image/<image_type>")
})
You can generate access tokens through the link above, or you can use OAuth Authentication
In your app, make sure you have the omniauth gem installed. Add the following
to your intializers/omniauth.rb
file
Rails.application.config.middleware.use OmniAuth::Builder do
provider :pinterest, ENV['PINTEREST_APP_ID'], ENV['PINTEREST_APP_SECRET']
end
Direct your users to /auth/pinterest
Once they approve your app, they'll be redirected to your callback URL, which
should be something like auth/pinterest/callback
with a hash of
OAuth values from Pinterest in request.env['omniauth.auth']
For more details, check out "Integrating OmniAuth Into Your Application"
https://github.com/intridea/omniauth
You can set any request options that are valid in Faraday::Connection
by adding them as a hash to the Pinterest Client initializer.
Example:
client = Pinterest::Client.new(ACCESS_TOKEN, {
request: {
timeout: 1.5,
open_timeout: 1,
}
})
counts = client.get_user('<username>', {fields: "counts"})
The gem is currently under active development. The following issues cause the test specs to fail, though it's not clear to me that these issues are not with the Pinterest API itself.
- PATCH requests not working, endpoint path is not being appended to base
- POST/DELETE requests for following/unfollowing interests respectively are not working
- Pagination
- document Mash response methods
Bug reports and pull requests are welcome on GitHub at https://github.com/realadeel/pinterest-api.
Please provide a failing test for bug reports, and a passing test for pull requests.
pinterest-api's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.