如何建立Twitter OAuth身份验证?

问题描述 投票:1回答:1

这是我的以下操作的JavaScript代码:https://api.twitter.com/1.1/users/show.json?screen_name=barackobama

从Twitter API 1.1开始不再起作用:{"errors":[{"message":"Bad Authentication data","code":215}]}

[我知道您现在需要OAuth访问令牌,我什至在Twitter中创建了一个,但我不知道如何在此脚本中添加它。

感谢您的帮助!

function TwitterFollowers(aUsername)
{
  user = _twitterFetchUserData(aUsername);
  return user.followers_count;
}

function TwitterFollowings(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.friends_count;
}

function TwitterListed(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.listed_count;
}

function TwitterId(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.id;
}

function TwitterFullname(aUsername)
{
  user = _twitterFetchUserData(aUsername);
  return user.name;
}

function TwitterCreatedDate(aUsername)
{
  user = _twitterFetchUserData(aUsername);
  return user.created_at;
}

function TwitterVerified(aUsername)
{
  user = _twitterFetchUserData(aUsername);
  return user.verified;
}

function TwitterTimezone(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.time_zone;
}

function TwitterLocation(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.location;
}

function TwitterHomepage(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.url;
}

function TwitterDescription(aUsername)
{
  user = _twitterFetchUserData(aUsername);  
  return user.description;
}


// internal function invisible to Google SpreadSheets
var _twitterFetchUserData = function(aUsername)
{
  if (aUsername === undefined || aUsername === null)
    throw "No parameter specified. Write any Twitter USERNAME as parameter."

  if (aUsername == "")
    throw "USERNAME cannot be empty string. Write any Twitter USERNAME as parameter.";

  // See https://dev.twitter.com/docs/api/1/get/users/show for API documentation
  var url = "https://api.twitter.com/1.1/users/show.json?screen_name=" + encodeURIComponent(aUsername);

  try
  {
    var response = UrlFetchApp.fetch(url);
  }
  catch (e)
  {
    throw "Please check if Twitter Username \"" + aUsername + "\" exists. " + e;
  }

  if (response.getResponseCode() != 200)
    throw "Unexpected response code from Twitter.";

  var responseText = response.getContentText();

  if (responseText == null || responseText == "")
    throw "Empty response from Twitter.";

  var user = Utilities.jsonParse(responseText);

  if (user == null)
    throw "Problem with response from Twitter. Invalid JSON.";

  return user;
};
javascript twitter twitter-oauth
1个回答
3
投票

根据新版本的Twitter API v1.1,必须使用OAuth 1.0A对所有对Twitter的请求进行签名。您可能需要访问here以了解其工作原理。我建议使用Twitter库对codebird-js之类的请求进行身份验证和签名(请查看下面的示例或给定的网站)。真的很容易使用。验证很简单,如下所示:

var cb = new Codebird;
cb.setConsumerKey('YOURKEY', 'YOURSECRET');
cb.setToken('YOURTOKEN', 'YOURTOKENSECRET');

然后拨打电话,例如鸣叫:

cb.__call(
    'statuses_update',
    {'status': 'Whohoo, I just tweeted!'},
    function (reply) {
        // ...
    }
);

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.