首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python & tumblr :无法登录到我自己的tumblr来创建帖子

Python & tumblr :无法登录到我自己的tumblr来创建帖子
EN

Stack Overflow用户
提问于 2013-05-13 08:44:03
回答 1查看 1.2K关注 0票数 3

所以我有一个用户密钥和tumblr的使用者秘密,我有下面的代码允许我进行Oauth身份验证,但是我不知道如何通过python和/或pytumblr登录到我自己的tumblr。在成功使用Oauth之后,我无法将其发布到我的tumblr。我应该通过API登录到我的tumblr,还是通过python定期登录,然后使用API呢?我相信,自2012年9月以来,旧的tumblr API就不再起作用了,因此,据我所知,这里的python已经不再工作了。相反,我使用的是来自这里的pytumblr。

这是我的密码:

代码语言:javascript
复制
import urlparse
import oauth2
import pytumblr

REQUEST_TOKEN_URL = 'http://www.tumblr.com/oauth/request_token'
AUTHORIZATION_URL = 'http://www.tumblr.com/oauth/authorize'
ACCESS_TOKEN_URL = 'http://www.tumblr.com/oauth/access_token'
CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'   

def Test():
    consumer = oauth2.Consumer(CONSUMER_KEY, CONSUMER_SECRET)
    client = oauth2.Client(consumer)

    resp, content = client.request(REQUEST_TOKEN_URL, "GET")

    request_token = dict(urlparse.parse_qsl(content))
    oauthToken = request_token['oauth_token']
    oauthSecret = request_token['oauth_token_secret']  

    print "Request Token:\n"
    print " - oauth_token        = " + oauthToken + "\n"
    print " - oauth_token_secret = " + oauthSecret + "\n"

    pytumblrClient = pytumblr.TumblrRestClient(CONSUMER_KEY, CONSUMER_SECRET, oauthToken, oauthSecret)

    response = pytumblrClient.create_text("mytumblr.tumblr.com", body="test")
    print response

如您所见,我的tumblr没有密码被发送到任何地方,也没有文档告诉我在哪里发送密码。在运行代码之后,我得到了一个未经授权的响应:

代码语言:javascript
复制
{u'meta': {u'status': 401, u'msg': u'Not Authorized'}, u'response': []}

有没有一种方法可以使用tumblr API发布到我自己的tumblr呢?

EN

回答 1

Stack Overflow用户

发布于 2016-05-31 14:16:14

tl;博士这个解决方案指示用户检索console.py生成的oauth令牌,并对令牌值进行硬编码,而不是以编程方式检索它们。

注意:我确信这个解决方法在某种程度上违反了oauth的整个原则,但我不明白为什么原始方法不能工作。非常感谢比我更有知识的人提供的关于- 1、为什么这个解决方法不理想的输入。2.如何修复原始方法,这样我就不必这样做了。

解决方案:

  1. API控制台页获取您的“消费者密钥”和“消费者秘密”
  2. 运行console.py并按照指示执行
  3. 如果一切顺利,您的oauth令牌现在都存储在~/..tumblr (吡咯烷酮)中,您应该到达一个交互式python控制台 Python 2.7.11 (缺省值,2016年5月19日,13:11:38) GCC 4.2.1兼容Apple LLVM 7.3.0 (clang-703.0.31)在达尔文类型“帮助”、“版权”、“信用”或“许可”上获得更多信息。(InteractiveConsole) >>>
  4. 退出python控制台,因为您不需要它(输入' Exit ()‘)
  5. 从~/..tumblr检索oauth令牌
  6. 将您的oauth令牌硬编码到您正在使用的任何内容中,该代码将始终返回401“未经授权”错误。对我来说,这看起来是这样的:(注意<< >>) 导入urlparse oauth2 pytumblr REQUEST_TOKEN_URL = '令牌‘AUTHORIZATION_URL = 'http://www.tumblr.com/oauth/authorize’ACCESS_TOKEN_URL = '令牌‘CONSUMER_KEY = '<>’CONSUMER_SECRET = '<>‘#不再需要这个b/c,我们不再以编程的方式检索oauth令牌。消费者(CONSUMER_KEY,CONSUMER_SECRET) client =oauth2.Client(消费者) resp,content = client.request(REQUEST_TOKEN_URL,( "GET") request_token =dict(urlparse.parse_qsl(内容)) oauthToken =请求_令牌‘oauth _TOKEN’oauthSecret = request_token' oauth _token‘#原始API调用,通过编程检索到的OAUTH令牌#pytumblrClient = pytumblr.TumblrRestClient(CONSUMER_KEY,CONSUMER_SECRET,oauthToken,oauthSecret) #带有OAUTH令牌的新API调用硬编码的pytumblrClient = pytumblr.TumblrRestClient(CONSUMER_KEY,CONSUMER_SECRET,<<硬编码_OAUTH_TOKEN>>),'<>')响应= pytumblrClient.create_text("selfiesindumbo",body=“通过API进行测试”)打印响应

希望这能帮到别人!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16517965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档