3

私はアプリを作成した twitter アカウントを持っています。現在、学生が私たちのウェブサイトからツイートできるように設定されているため、ツイートの下部に「SchoolAppNameHere 経由」と表示されます。

Twython を使用して Appkey と秘密鍵を使用し、まったく別のものから認証トークンを取得することは可能ですか?以下のコードを実行すると、アプリを作成していないアカウントからツイートされます...

from twython import Twython

APP_KEY = ''
APP_SECRET = ''
OAUTH_TOKEN = ''
OAUTH_TOKEN_SECRET = ''

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter.update_status(status="test")

どんなアイデアでも大歓迎です:)

編集、以下の例/​​説明を更新:

次の画像がアカウント「stackoverflowapp」と「Stackoverflow Test App」というアプリからのものだとしましょう。

http://i.imgur.com/8sIpak5.png http://i.imgur.com/e6CYt6e.png

次のコードを使用すると、「Stackoverflow Test App」という名前のアプリケーションを介して、アカウント「stackoverflowapp」からツイート「test」をツイートします。

from twython import Twython

APP_KEY = 'coN_kEY_123456789'
APP_SECRET = 'cOn_sEcr3t_123456789'
OAUTH_TOKEN = 'Acc3ss_tok3N_123456789'
OAUTH_TOKEN_SECRET = 'aCCeSS_tOkEn_sEcrET_123456789'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter.update_status(status="test")

次の画像がアカウント「useraccount1」からのもので、アプリの名前が「testing123」であるとします。

http://i.imgur.com/vYJLmfr.png

アカウント「useraccount1」にログインするためのアクセストークンを取得したので、ユーザーによって作成された「Stackoverflow test app」というアプリを介してツイートするにはどうすればよいですか。

from twython import Twython

APP_KEY = 'coN_kEY_123456789'
APP_SECRET = 'cOn_sEcr3t_123456789'
OAUTH_TOKEN = 'Acc3ss_123456789'
OAUTH_TOKEN_SECRET = 'aCCeSS_sEcrET_123456789'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter.update_status(status="test update")

残念ながら、次のエラーが表示されます。

TwythonAuthError: Twitter API returned a 401 (Unauthorized), Could not authenticate you
4

1 に答える 1

3

もちろん、これは可能です。Twitter でアプリケーションを作成すると、便宜上、すぐに使用できる独自の認証トークンが提供されます。

アクセス トークン文字列を "oauth_token" として、アクセス トークン シークレットを "oauth_token_secret" として使用して、自分の Twitter アカウントでリクエストに署名します。oauth_token_secret を誰とも共有しないでください。

同じアプリケーションの他のアカウントのキーを取得するには、アカウントごとに追加のキーを要求する必要があります。これについては、https ://dev.twitter.com/docs/auth/obtaining-access-tokens で詳しく説明しています。

認証を自分で行うように思われるので、より単純なPIN ベースのアプローチを使用する必要があります。

twythonを使用しており、ライブラリを使用してこれらを取得できます: https://twython.readthedocs.org/en/latest/usage/starting_out.html#authentication

get_authentication_tokensそしてget_authorized_tokens、あなたが探している方法です。

from twython import Twython
import sys

APP_KEY = 'coN_kEY_123456789'
APP_SECRET = 'cOn_sEcr3t_123456789'

twitter = Twython( APP_KEY, APP_SECRET )
auth = twitter.get_authentication_tokens()

print( 'Visit %s and enter your PIN: ' % auth.get( 'auth_url' ) ),
pin = sys.stdin.readline().strip()

twitter = Twython( APP_KEY, APP_SECRET, auth.get( 'oauth_token' ), auth.get( 'oauth_token_secret' ) )
tokens = twitter.get_authorized_tokens( pin )

print( 'OAUTH_TOKEN: %s' % tokens.get( 'oauth_token' ) )
print( 'OAUTH_TOKEN_SECRET: %s' % tokens.get( 'oauth_token_secret' ) )

安全な場所に保管OAUTH_TOKENOAUTH_TOKEN_SECRET、自由に再利用してください。また、URL にアクセスして PIN を取得するときに、正しいアカウントを承認していることを確認してください。

すべての API 呼び出しは、トークンを介してアクセスを許可したアカウントの半分で行われ、via回線は元のアプリケーションになります。ツイートするアカウントごとに適切なトークンを使用してください。組み合わせることはできません。

于 2013-12-17T07:54:00.713 に答える