Page Summary
-
The provided content shows examples of using Twitter's application-only authentication within Google Ads Scripts.
-
Application-only authentication is suitable for API aspects that don't require user impersonation.
-
The scripts demonstrate retrieving trending topics for a specific location using a woeId and searching for tweets based on a query.
-
Both examples require setting up a Twitter application, obtaining consumer keys, and incorporating the OAuth2 library.
-
The
initializeOAuthClientfunction is called once to set up the OAuth client using client credentials.
Retrieve trends for a given location
/** * Example of using Twitter Application-only authentication from Google Ads Scripts * Application-only authentication is used where the aspects of the API being * used do not require impersonating a given Twitter user. * * Example usage: * initializeOAuthClient(); * // Get trends using a woeId to specify location. See: * // https://developer.yahoo.com/geo/geoplanet/guide/concepts.html * const results = getTrendsForLocation(44418); * * See https://developers.google.com/google-ads/scripts/docs/features/third-party-apis#client_credentials_grant * for details on configuring this script. * * NOTE: This script also requires the OAuth2 library to be pasted at the end, * as obtained from https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library */ // Consumer Key for your application set up at https://apps.twitter.com. See // 'Keys and Access Tokens' for generating your consumer key. const TWITTER_CONSUMER_KEY = ' INSERT_CONSUMER_KEY_HERE ' ; const TWITTER_CONSUMER_SECRET = ' INSERT_CONSUMER_SECRET_HERE ' ; let authUrlFetch ; // Call this function just once, to initialize the OAuth client. function initializeOAuthClient () { if ( typeof OAuth2 == = ' undefined ' ) { const libUrl = ' https : //developers.google.com/google-ads/scripts/docs/examples/oauth20-library'; throw Error ( ' OAuth2 library not found . Please take a copy of the OAuth2 ' + ' library from ' + libUrl + ' and append to the bottom of this script . ' ); } const tokenUrl = ' https : //api.twitter.com/oauth2/token'; authUrlFetch = OAuth2 . withClientCredentials ( tokenUrl , TWITTER_CONSUMER_KEY , TWITTER_CONSUMER_SECRET ); } /** * Retrieves a list of trending topics for a given geographic area of interest. * @param {string} woeId Geographic location specified in Yahoo! Where On Earth * format. See https://developer.yahoo.com/geo/geoplanet/guide/concepts.html * @return {Object} The Trends results object, see: * https://dev.twitter.com/rest/reference/get/trends/place for details. */ function getTrendsForLocation ( woeId ) { const url = ` https : //api.twitter.com/1.1/trends/place.json?id=${woeId}`; const response = authUrlFetch . fetch ( url ); return JSON . parse ( response . getContentText ()); } // Paste in OAuth2 library here, from: // https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library
Retrieve tweets for a given search query
/** * Example of using Twitter Application-only authentication from Google Ads Scripts * Application-only authentication is used where the aspects of the API being * used do not require impersonating a given Twitter user. * * Example usage: * initializeOAuthClient(); * const results = getTweetsForSearch('Olympics 2016'); * const localResults = getTweetsForSearch('Euro 2016', '51.5085300,-0.1257400,10mi'); * * See https://developers.google.com/google-ads/scripts/docs/features/third-party-apis#client_credentials_grant * for details on configuring this script. * * NOTE: This script also requires the OAuth2 library to be pasted at the end, * as obtained from https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library */ // Consumer Key for your application set up at https://apps.twitter.com. See // 'Keys and Access Tokens' for generating your consumer key. const TWITTER_CONSUMER_KEY = ' INSERT_CONSUMER_KEY_HERE ' ; const TWITTER_CONSUMER_SECRET = ' INSERT_CONSUMER_SECRET_HERE ' ; let authUrlFetch ; // Call this function just once, to initialize the OAuth client. function initializeOAuthClient () { if ( typeof OAuth2 == = ' undefined ' ) { const libUrl = ' https : //developers.google.com/google-ads/scripts/docs/examples/oauth20-library'; throw Error ( ' OAuth2 library not found . Please take a copy of the OAuth2 ' + ' library from ' + libUrl + ' and append to the bottom of this script . ' ); } const tokenUrl = ' https : //api.twitter.com/oauth2/token'; authUrlFetch = OAuth2 . withClientCredentials ( tokenUrl , TWITTER_CONSUMER_KEY , TWITTER_CONSUMER_SECRET ); } /** * Retrieves Tweets for a specific search term. * @param {string} searchTerm The search term to look for. * @param {string=} opt_geocode Limit returned Tweets to those from users in a * location. Specified in the form "latitude,longitude,radius", where radius * is in either "km" or "mi". e.g. 37.781157,-122.398720,1mi * @param {string=} opt_mode Optional preference for recent, popular or mixed * results. Defaults to 'mixed', other options are 'recent' and 'popular'. * @return {Object} The statuses results object, see: * https://dev.twitter.com/rest/reference/get/search/tweets for details. */ function getTweetsForSearch ( searchTerm , opt_geocode , opt_mode ) { const mode = opt_mode || ' mixed ' ; const url = ' https : //api.twitter.com/1.1/search/tweets.json?q=' + encodeURIComponent ( searchTerm ) + ' & result_type = ' + mode ; if ( opt_geocode ) { url += ' geocode = ' + opt_geocode ; } const response = authUrlFetch . fetch ( url ); return JSON . parse ( response . getContentText ()); } // Paste in OAuth2 library here, from: // https://developers.google.com/google-ads/scripts/docs/examples/oauth20-library

