AI-generated Key Takeaways
-
These Google Ads scripts demonstrate how to use Twitter's Application-only authentication to retrieve data without impersonating a specific user.
-
The provided examples show how to retrieve trending topics for a given location using a WOEID and search for tweets based on a search term, optionally filtering by location and result type.
-
Before using these scripts, you need to set up a Twitter application and insert your consumer key and secret into the script, as well as include the OAuth2 library.
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