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;
};
4

1 に答える 1

3

新しいバージョンの Twitter API v1.1 によると、Twitter へのすべてのリクエストは OAuth 1.0A を使用して署名する必要があります。ここにアクセスして、それがどのように機能するかを確認することをお勧めします。Twitter ライブラリを使用して、codebird-jsなどのリクエストを認証および署名することをお勧めします(以下の例または指定された Web サイトを参照してください)。使い方はとても簡単です。認証は以下のように簡単です。

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

そして、ツイートなどの呼び出しを行います。

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

それが役に立てば幸い。

于 2013-06-15T21:07:07.950 に答える