我有一个推特应用程序的推特帐户,目前正在设置,以便学生可以从我们的网站发推文,因此他们的推文在他们的推文底部显示“通过SchoolAppNameHere”。
是否可以使用Twython来使用Appkey和密钥,然后从完全不同的方式获取auth令牌,所以当我在下面运行一些代码时,它会从一个帐户发布不创建应用程序的内容。 ..
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”的应用程序:
使用以下位代码将通过名为“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”:
所以现在我有访问令牌登录帐户“useraccount1”,我怎么能通过用户创建的名为“Stackoverflow test app”的应用程序发推文:“stackoverflowapp”我试过的例子如下:
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
答案 0 :(得分:3)
这当然是可能的。当您在Twitter中创建应用程序时,为方便起见,它们会为您提供您自己的身份验证令牌,以便您立即使用。
使用访问令牌字符串作为“oauth_token”,将访问令牌密码用作“oauth_token_secret”,以使用您自己的Twitter帐户对请求进行签名。不要与任何人分享你的oauth_token_secret。
要获取同一应用程序的其他帐户的密钥,您需要为每个帐户请求更多密钥。这在此处详细描述:https://dev.twitter.com/docs/auth/obtaining-access-tokens
由于听起来您自己会进行授权,因此应该使用更简单的PIN-based方法。
您正在使用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_TOKEN
和OAUTH_TOKEN_SECRET
存放在某个地方,并随意重复使用。另外,请确保在访问URL并获取PIN时授权正确的帐户。
您的所有API调用都将在bahalf上通过令牌授权访问,并且您的via
行将是您的原始应用程序。对于您要发布的每个帐户使用相应的令牌,无法混合搭配。