Skip to content

Commit 60b6a2a

Browse files
davidchaikenDavid Chaiken
and
David Chaiken
authoredNov 1, 2022
Remove support for API v3 and v4 (#79)
* python: move v5 to src and delete v3 * python: remove v5 prefix from imports * python: move v5 test files to src and remove v3 * python: remove version import handling from scripts and fix lint issues * python: fix lint issues * python: v5 unit tests and one integration test working * fix analytics integration test and remove get_businesses * python: test_refresh_example working for v5 * python: remove v3-specific code * python: remove ApiConfig.version * python: merge access_token_common into access_token * python: delete ad_metrics_async_report * python: move ad_metrics_async_report_common to src/ad_metrics_async_report * python: ad_metrics_async_report working again * python: remove user_me * python: remove v3 raw option from unpack * lint fixes for python, no more e2e tests for v3 * nodejs: move v5 to src and delete v3 * nodejs: adjust imports and jest mocks for v5 only code * nodejs: alphabetize imports * nodejs: remove get_businesses * remove v3-specific code * remove ApiConfig.version * nodejs: merge access_token_common into access_token * nodejs: remove ad_metrics_async_report * nodejs: move ad_metrics_async_report_common to ad_metrics_async_report * ad_metrics_async_report working again * nodejs: remove user_me * nodejs: lint fixes * scripts: lint fixes * bash: remove v3 and version-independent scripts * bash: move v5 script into scripts directory * remove more instances of v3 and v4 from README and other files * update link to delivery metrics doc * fix comment in help doc generator * README: refer to v1.1 of this repo for v3/v4 code Co-authored-by: David Chaiken <dchaiken@pinterest.com>
1 parent 7b35b29 commit 60b6a2a

File tree

150 files changed

+1017
-5044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+1017
-5044
lines changed
 

‎README.md

+7-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ Code that makes it easy to get started with the Pinterest API.
44

55
## Purpose
66

7-
This repository has code that is intended to provide a quick start for working with the [Pinterest API v5](https://developers.pinterest.com/docs/api/v5/), and also supports [Pinterest API v3](https://developers.pinterest.com/docs/redoc/) plus [Pinterest Marketing API v4](https://developers.pinterest.com/docs/redoc/adtech_ads_v4/). Note that all newly-created apps should use [Pinterest API v5](https://developers.pinterest.com/docs/api/v5/) and (when necessary) [Pinterest Marketing API v4](https://developers.pinterest.com/docs/redoc/adtech_ads_v4/). There is currently python code that implements a number of use cases, JavaScript (nodejs) code with essentially the same functionality, and a bash script that demonstrates the OAuth authentication and authorization flow. Over time, we plan to add more demonstrations of API functionality and possibly additional languages -- likely Ruby and maybe Go or PHP.
7+
This repository has code that is intended to provide a quick start for working with the [Pinterest API v5](https://developers.pinterest.com/docs/api/v5/). There is currently python code that implements a number of use cases, JavaScript (nodejs) code with essentially the same functionality, and a bash script that demonstrates the OAuth authentication and authorization flow.
8+
9+
This quickstart used to support Pinterest API version v3 and v4, but that code has been removed so that everyone can focus on v5. If you're interested in code that shows the differences between using v3/v4 and v5, see [version 1.1](https://github.com/pinterest/api-quickstart/releases/tag/v1.1) of this repo.
810

911
## Quick Start
1012

@@ -47,7 +49,7 @@ This repository has code that is intended to provide a quick start for working w
4749
4850
## OAuth 2.0 Authorization
4951
50-
Access to Pinterest APIs via User Authorization requires following a flow based on [OAuth 2.0](https://tools.ietf.org/html/rfc6749). To learn about how to use OAuth 2.0 with the Pinterest API, check out the [Glitch-based tutorial](https://pinterest-oauth-tutorial.glitch.me/). For details regarding OAuth, please refer to our [v5 developer docs](https://developers.pinterest.com/docs/getting-started/authentication/) or [v3 developer docs](https://developers.pinterest.com/docs/redoc/#section/User-Authorization). The code in this repo demonstrates how to initiate the flow by starting a browser, and then handling the OAuth redirect to the development machine (localhost). The browser is used to obtain an authorization code, and then the code invoked by the redirect exchanges the authorization code for an access token.
52+
Access to Pinterest APIs via User Authorization requires following a flow based on [OAuth 2.0](https://tools.ietf.org/html/rfc6749). To learn about how to use OAuth 2.0 with the Pinterest API, check out the [Glitch-based tutorial](https://pinterest-oauth-tutorial.glitch.me/). For details regarding OAuth, please refer to our [v5 developer docs](https://developers.pinterest.com/docs/getting-started/authentication/). The code in this repo demonstrates how to initiate the flow by starting a browser, and then handling the OAuth redirect to the development machine (localhost). The browser is used to obtain an authorization code, and then the code invoked by the redirect exchanges the authorization code for an access token.
5153
5254
An access token is used to authenticate most API calls. In general, access tokens are valid for relatively long periods of time, in order to avoid asking users to go through the OAuth flow too often. When an access token expires, it is possible to refresh the token -- a capability that the code in this repo also demonstrates.
5355
@@ -62,9 +64,9 @@ Like users, most developers do not want to have to go through the OAuth flow too
6264
The precedence order in this repo for obtaining an access token is: environment, file, execute the OAuth 2.0 flow.
6365
6466
Code that implements OAuth is available for each language in this repo. The location of the code is as follows.
65-
* One bash script for each version of the Pinterest API provide complete examples: [bash/scripts/v3/get_access_token.sh](bash/scripts/v3/get_access_token.sh) and [bash/scripts/v5/get_access_token.sh](bash/scripts/v5/get_access_token.sh).
66-
* In python, the version-independent code in [python/src/user_auth.py](python/src/user_auth.py) opens a browser and handles the redirect to obtain an authorization code. The version-dependent code to exchange the authorization code for an access token is in [python/src/v3/access_token.py](python/src/v3/access_token.py) and [python/src/v5/access_token.py](python/src/v5/access_token.py). These two files also implement access token refresh.
67-
* In JavaScript, the version-independent code in [nodejs/src/user_auth.js](nodejs/src/user_auth.js) opens a browser and handles the redirect to obtain an authorization code. The version-dependent code to exchange the authorization code for an access token is in [nodejs/src/v3/access_token.js](nodejs/src/v3/access_token.js) and [nodejs/src/v5/access_token.js](nodejs/src/v5/access_token.js). These two files also implement access token refresh.
67+
* A bash script that provides a complete example: [bash/scripts/get_access_token.sh](bash/scripts/get_access_token.sh).
68+
* In python, the code in [python/src/user_auth.py](python/src/user_auth.py) opens a browser and handles the redirect to obtain an authorization code. The code to exchange the authorization code for an access token is in [python/src/access_token.py](python/src/access_token.py). This file also implements access token refresh.
69+
* In JavaScript, the code in [nodejs/src/user_auth.js](nodejs/src/user_auth.js) opens a browser and handles the redirect to obtain an authorization code. The code to exchange the authorization code for an access token is in [nodejs/src/access_token.js](nodejs/src/access_token.js). This file also implements access token refresh.
6870
6971
## Security Notes
7072
@@ -86,7 +88,6 @@ Code that implements OAuth is available for each language in this repo. The loca
8688
* `scripts` are executable files that demonstrate one or more use cases.
8789
* `src` contains code that is used by the scripts and that you can incorporate into your own applications.
8890
* `tests` contains unit and integration tests.
89-
* Code that is specific to versions of the Pinterest API is in subdirectories of `src` (in the case of python and nodejs) or `scripts` (in the case of bash). The two versions supported by this quickstart are v3 and v5.
9091
9192
## Code Conventions
9293

‎bash/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
SCRIPTS=scripts/*.sh scripts/*/*.sh
1+
SCRIPTS=scripts/*.sh
22
lint:
33
shellcheck $(SCRIPTS)
44

0 commit comments

Comments
 (0)
Please sign in to comment.