pinterest-python-sdk
pinterest-python-sdk copied to clipboard
BUG - SDK Client pin creation fails but endpoint is working
Describe the bug
I'm able to create pins using the python requests package and endpoint provided in the Pinterest API docs but when I try using the SDK I get permissions error.
To Reproduce Unsuccessful using SDK:
from pinterest.client import PinterestSDKClient
from pinterest.organic.pins import Pin
PinterestSDKClient.set_default_access_token(<token>)
params = {
"board_id": <board_id>,
"ad_account_id": <ad_account>,
"description": <description>,
"link": <link>,
"title": <title>,
"media_source":{
'source_type':'image_base64',
'data': <image>,
'content_type':"image/png"
}
Pin.create(**params)
The above returns the following error:
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json', 'Content-Length': '38', 'pinterest-version': 'c7fe355', 'x-content-type-options': 'nosniff', 'x-frame-options': 'DENY', 'Access-Control-Allow-Credentials': 'true', 'p3p': 'CP="Pinterest does not have a P3P policy. You can find our privacy policy at https://www.pinterest.com/_/_/policy/privacy-policy."', 'x-envoy-upstream-service-time': '83', 'pinterest-generated-by': 'tpp-api-canary-0a0308c3', 'X-RateLimit-Limit': '100, 100;w=1, 1000;w=60', 'X-RateLimit-Remaining': '99', 'X-RateLimit-Reset': '1', 'Cache-Control': 'no-cache, no-store, must-revalidate', 'x-pinterest-rid': '6639680265060241', 'Date': 'Tue, 14 May 2024 16:13:42 GMT', 'Alt-Svc': 'h3=":443"; ma=600', 'Connection': 'keep-alive', 'Set-Cookie': '_ir=0; Max-Age=1800; HttpOnly; Path=/; Secure', 'AKAMAI-GRN': '0.de6533b8.1715703222.1e8acbde', 'X-CDN': 'akamai'})
HTTP response body: {"code":50,"message":"Pin not found."}
The following python request works
import requests
params = {
"board_id": <board_id>,
"ad_account_id": <ad_account>,
"description": <description>,
"link": <link>,
"title": <title>,
"media_source":{
'source_type':'image_base64',
'data': <image>,
'content_type':"image/png"
}
auth = {'Authorization': 'Bearer {}'.format(<token>)}
auth["Content-Type"] = "application/json"
pin = requests.post('https://api.pinterest.com/v5/pins', json=params, headers=self.auth).json()
Screenshot of response using above method:
Additional Details:
- MacOS Sonoma 14.3 M1 chip
- pinterest-api-sdk==0.2.1