サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

シングルユーザー OAuth の例

注意してください:大抵の開発者であれば、以下の文書に記載されているよりも優れたやり方でアプリケーション単独認証を使うことができるでしょう。

Twitterでは、dev.twitter.comのアプリケーション詳細ページから、シングルアクセストークン(complete with oauth_token_secret)を取得する機能があります。

This is ideal for applications migrating to OAuth with single-user use cases. OAuthのコンシューマキー、秘密情報、アクセストークン、アクセストークンの秘密情報の組み合わせを使い回すことはできません。

シングルアクセストークンを使用することで、OAuthトークン取得処理を全て実装する必要はなくなります。 Instead, you can pick up from the point where you are working with an access token to make signed requests for Twitter resources.

このページには、いくつかの異なるライブラリでOAuth とアクセストークンを使用するためのヒントを記載しています。

また、OAuthについての全てを読むこともあなたの助けになるでしょう。 These tips also generally apply for all contexts of using OAuth with access tokens, not just the “single user” use case.



C#-based twitterizer ライブラリを使用する

This tip is courtesy of Ricky Smith, author of twitterizer, a library for interfacing with the Twitter API that handles much of the OAuth implementation behind the scenes.

OAuthTokens tokens = new OAuthTokens();

tokens.ConsumerKey = "Consumer Key";
tokens.ConsumerSecret = "Consumer Secret";
tokens.AccessToken = "Access Key";
tokens.AccessTokenSecret = "Access Secret";

TwitterStatusCollection homeTimeline = TwitterStatus.GetHomeTimeline(tokens);


Ernandes Jr氏が製作したTwitter API MEを使用する。

Twitter API ME はOAuthを使ってTwitterとやり取りするためのライブラリです。

Token = new Token("token_access", "token_secret");
Credential c = new Credential("user_name", "consumer_key", "consumer_secret", token);
UserAccountManager m = UserAccountManager.getInstance(c);

if (m.verifyCredential()) {
  GeoLocation loc = new GeoLocation("+37.5", "+26.7");
  Tweet t = new Tweet("Cool! Geo-located tweet via Twitter API ME. \o/", loc);
  TweetER ter = TweetER.getInstance(m);
  t = ter.post(t); 
}


@abraham 氏が作成した PHP twitteroauth ライブラリを使用する

これは単にOAuth だけのライブラリではなく Twitter 用ライブラリなので、twitteroauthでは多くの便利な機能を使用することができます。 アクセストークンに代わってリクエストを作成する“コネクションアクター(connection actor)”を設定するだけで使用できます。

function getConnectionWithAccessToken($oauth_token, $oauth_token_secret) {
  $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $oauth_token_secret);
  return $connection;
}

$connection = getConnectionWithAccessToken("abcdefg", "hijklmnop");
$content = $connection->

get("statuses/home_timeline");


Python-OAuth2 ライブラリを使用する

Python OAuth2 ライブラリはあなたに代わってリクエストの署名に関する多くの処理を制御し、多くの人の手によって改良が重ねられています。readme にはTwitter APIとやり取りする方法の例がさらに多く記載されています。

def oauth_req(url, key, secret, http_method="GET", post_body=None, http_headers=None):
	consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
	token = oauth.Token(key=key, secret=secret)
	client = oauth.Client(consumer, token)
	resp, content = client.request( url, method=http_method, body=post_body, headers=http_headers, force_auth_header=True )
	return content home_timeline = oauth_req( 'https://api.twitter.com/1.1/statuses/home_timeline.json', 'abcdefg', 'hijklmnop' )


OAuth Ruby Gemを使用する

OAuth Ruby gemでは本当に簡単にアクセストークンを使用できます。

# oauth_token とoauth_token_secret を、アクセストークンインスタンスと交換します。
def prepare_access_token(oauth_token, oauth_token_secret)
	consumer = OAuth::Consumer.new("APIKey", "APISecret", { :site => "https://api.twitter.com", :scheme => :header })
	
	# now create the access token object from passed values
	token_hash = { :oauth_token => oauth_token, :oauth_token_secret => oauth_token_secret }
	access_token = OAuth::AccessToken.from_hash(consumer, token_hash )

	return access_token
end

# oauth_token とoauth_token 秘密情報を、アクセストークンインスタンスと交換します。
access_token = prepare_access_token("abcdefg", "hijklmnop")

# アクセストークンを使って、ホームタイムラインを取得します
response = access_token.request(:get, "https://api.twitter.com/1.1/statuses/home_timeline.json")