![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@20minutes/node-google-dfp
Advanced tools
This is exactly the same plugin as node-google-dfp but with dependencies up to date.
yarn add @20minutes/node-google-dfp
Initialize the DFP Instance.
import Dfp from 'node-google-dfp'
dfpUser = new Dfp.User(NETWORK_CODE, APP_NAME, VERSION)
Next, setup your client settings and your user's OAUTH token information.
dfpUser.setSettings({
client_id: "YOUR CLIENT ID",
client_secret: "YOUR CLIENT SECRET",
refresh_token: "A REFRESH TOKEN",
redirect_url: "YOUR OAUTH REDIRECT URL"
})
You can instance any of DFP's API Services: https://developers.google.com/doubleclick-publishers/docs/start
dfpUser.getService('LineItemService', function (err, lineItemService) {
if (err) {
return console.error(err)
}
const statement = new DfpClass.Statement('WHERE id = 103207340')
lineItemService.getLineItemsByStatement(statement, function (err, results) {
console.log(results)
})
})
If you would like to use a Google Service Account to access DFP, you can do so by creating an instance of the JWT auth client.
import { JWT } from 'google-auth-library'
const jwtClient = new JWT(
SERVICE_ACCOUNT_EMAIL,
'path/to/key.pem',
null,
['https://www.googleapis.com/auth/dfp'],
)
dfpUser.setClient(jwtClient)
This application requires a working oAuth refresh token to make requests. If you don't include a refresh token you will get an "No refresh token is set" error. If you include a bad token, you'll get an "illegal access" error. Service accounts are not supported.
To setup a refresh token manually, follow Google's instructions for using cURL. The main steps are included below:
Setup a oAuth "installed application" in the Google Developer Console.
Create a verification request using this installed application's client ID. (If you miss this step you'll get an authorization_pending
error from Google on the next step.) Note that any slashes in a device_code
will need to be escaped.
curl -d "client_id={YOUR_OAUTH_CLIENT_ID}&scope=https://www.googleapis.com/auth/dfp" https://accounts.google.com/o/oauth2/device/code
{
"device_code" : "ABCD-EFGH4/MEiMYvOO1THXLV_fHGGN8obAgb5XFs1Uctj-QsyYsQk",
"user_code" : "ABCD-EFGH",
"verification_url" : "https://www.google.com/device",
"expires_in" : 1800,
"interval" : 5
}
Visit the verification_url
contained in the verification request response (e.g. https://www.google.com/device) in a browser and type in the user_code
provided in the verification response. A verification code will be given as a response.
Use the provided code
and your client ID and secret from the Google oAuth application to create a refresh token.
curl -d "client_id={YOUR_OAUTH_CLIENT_ID}&client_secret={YOUR_OAUTH_CLIENT_SECRET}&code={YOUR_VERIFICATION_CODE}&grant_type=http://oauth.net/grant_type/device/1.0" https://accounts.google.com/o/oauth2/token
{
"access_token" : "ya29.JAHynQpVpjBFhvg-7VKdQ7nmD0DkmCYoWTWo535TP8QsKa6j2rFOI1i0pdclFepv_GZo9A2SrN41dA",
"token_type" : "Bearer",
"expires_in" : 3600,
"id_token" : "eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZmM3YTJhMDkwYWJjOGYxMDU5MjJmMzFiN2FjZGUzYzA2NmU1NTYifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiaWQiOiIxMTU2MjQxNzA0MjQ3NzA5NDYzNzgiLCJzdWIiOiIxMTU2MjQxNzA0MjQ3NzA5NDYzNzgiLCJhenAiOiI4MzQ3MDQ2OTI1ODItMzlwY3I2M2RmNjBlZjByY2E5ZTc1cDRicTlzbjhxOWUuYXBwcy5nb29nbyV1c2VyY29udGVudC5jb20iLCJlbWFpbCI6InRheWxvci5idWxleUBtY25hdWdodG9uLm1lZGlhIiwiYXRfaGFzaCI6Ikp2Sl9JUDlxUk9zX1JUNDBoY0FSWVEiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXVkIjoiODM0NzA0HjkyNTgyLTM5cGNyNjNkZjYwZWYwcmNhOWU3NXA0YnE5c244cTllLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiaGQiOiJtY25hdWdodG9uLm1lZGlhIiwidG9rZW5faGFzaCI6Ikp2Sl9JSDlxUk9zX1JUNDBoY0FSWVEiLCJ2ZXJpZmllZF9lbWFpbCI6dHJ1ZSwiY2lkIjoiODM0NzA0NjkyNTgyLTM5cGNyNjNkZjYwZWYwcmNhOWU3NXA0YnE5c244cTllLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiaWF0IjoxNDI0ODAwNDcwLCJleHAiOjE0MjQ4MDQzNzB9.T9mTcSl5bJLKrFhldXOd1L1CnGFfZHNF1eQOmJYyp7wR3vKbz8ATTNAfyo8_2hSGt9kGrHDBcdgaq_18RYS72Tt0MclNy020romjl6rYRjs6GH93S3ZMiwra3UI3kmDXym9kyntedMS5gIPgJWfcoh0J0CTDNPBisLNrZntJv7Y",
"refresh_token" : "1/CGpCHgTgJ28PMnh84PgQBOgHHHaLCDbDQ_0ZiINmO_g"
}
You can use urn:ietf:wg:oauth:2.0:oob
for the redirect URL of non-public apps.
FAQs
Google DFP API Helper Library for NodeJS
The npm package @20minutes/node-google-dfp receives a total of 5 weekly downloads. As such, @20minutes/node-google-dfp popularity was classified as not popular.
We found that @20minutes/node-google-dfp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.