Google Apps脚本中的Twitter API授权存在问题

时间:2018-07-20 16:25:28

标签: json google-apps-script twitter-oauth

我已经使用了https://github.com/gsuitedevs/apps-script-oauth1

此处发布的文档

我在获得功能授权时遇到问题。我是使用API​​的新手,请多多包涵。尝试从Twitter执行一个简单的get请求,但第一部分没有完成。知道哪里出了问题吗? *注意已加载Oauth1库。

function getTwitterService() {
  // Create a new service with the given name. The name will be used when
  // persisting the authorized token, so ensure it is unique within the
  // scope of the property store.
  var service = OAuth1.createService('twitter')
      // Set the endpoint URLs.
      service.setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
      service.setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
      service.setAuthorizationUrl('https://api.twitter.com/oauth/authorize')

      // Set the consumer key and secret.
      service.setConsumerKey('myKey')
      service.setConsumerSecret('mySecret')

      // Set the name of the callback function in the script referenced
      // above that should be invoked to complete the OAuth flow.
      .setCallbackFunction('authCallback')

      // Set the property store where authorized tokens should be persisted.
      .setPropertyStore(PropertiesService.getUserProperties());


function authCallback(request) {
 var twitterService = getTwitterService();
 var isAuthorized = twitterService.handleCallback(request);
  if (isAuthorized) {
  return Logger.log('Success! You can close this tab.');
  } else {
    return Logger.log('Denied. You can close this tab');
 }
}

function makeRequest() {
Logger.log(authorizationUrl);
  var twitterService = getTwitterService();
  var response = twitterService.fetch("https://api.twitter.com/1.1/followers/list.json?screen_name='xyz'");
  var post = response.getContentText();
 Logger.log(post);
}
}

1 个答案:

答案 0 :(得分:1)

getTwitterService()方法应返回服务对象。 当前,代码段中的所有其他方法都在getTwitterService方法中声明。

function getTwitterService() {
    return OAuth1.createService('twitter')
        .setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
        .setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
        .setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
        .setConsumerKey('myKey')
        .setConsumerSecret('mySecret')
        .setCallbackFunction('authCallback')
        .setPropertyStore(PropertiesService.getUserProperties());
}