当前位置: 首页 > 知识库问答 >
问题:

使用twython在django中的本地服务器上测试twitter应用程序

李宁
2023-03-14

我正在使用twython库,与twitter python库握手。我正在本地服务器上测试东西,127.0.0.1:8000

这是我的第一个django视图,它为用户生成twitter令牌。

def twitter_auth(request):
    """
        The view function that initiates the entire handshake.
        For the most part, this is 100% drag and drop.
    """
    # Instantiate Twython with the first leg of our trip.
    twitter = Twython(
            settings.TWITTER_KEY,
            settings.TWITTER_SECRET,
            )
        # Then send them over there, durh.
        tw_callback_url = request.build_absolute_uri(reverse('social_home'))
    twitter_auth = twitter.get_authentication_tokens(callback_url=tw_callback_url)
        request.session['twitter_auth'] = twitter_auth
    return HttpResponseRedirect(twitter_auth['auth_url'])

从上面的视图中,用户被重定向到第二个视图,我希望在其中读取用户的时间线,我以下列方式执行-

def social_home(request):
    oauth_token_secret = request.session['twitter_auth']['oauth_token_secret']
    oauth_token = request.session['twitter_auth']['oauth_token']
    twitter = Twython(settings.TWITTER_KEY, settings.TWITTER_SECRET, oauth_token, oauth_token_secret)
    authorized_tokens = twitter.get_authorized_tokens(request.GET['oauth_verifier'])
    user_tweets = twitter.get_home_timeline()
    return render(request, "social_summary.html", {"user_tweets":user_tweets})

但是在这里,我得到以下错误-Twitter API返回了401(未经授权)、无效或过期的令牌

请帮我知道,我错在哪里。

谢谢你的时间。

共有1个答案

方鸿振
2023-03-14
def social_home(request):
    oauth_token_secret = request.session['twitter_auth']['oauth_token_secret']
    oauth_token = request.session['twitter_auth']['oauth_token']
    twitter = Twython(settings.TWITTER_KEY, settings.TWITTER_SECRET, oauth_token, oauth_token_secret)
    authorized_tokens = twitter.get_authorized_tokens(request.GET['oauth_verifier'])

    twitter = Twython(settings.TWITTER_KEY, settings.TWITTER_SECRET, authorized_tokens['oauth_token'], authorized_tokens['oauth_token_secret'])
    user_tweets = twitter.get_home_timeline()
    return render(request, "social_summary.html", {"user_tweets":user_tweets})

这应该有效!:)祝你好运!

 类似资料:
  • 我相信这听起来很傻,但对于像我这样的初学者来说,这是在炒作我的大脑,如果不弄清楚这一点,我就无法继续我的探索。 假设我正在构建一个简单的java命令行计算器应用程序,它接受2个数字和一个运算符作为输入,并将运算结果返回给用户。现在,我想在上面构建GUI(类似于在线计算器)。为此,我决定构建一个web应用程序,这样我就可以在浏览器上打开应用程序并无缝地使用它。这在我脑海中引出了以下问题 我是否必须用

  • 问题内容: 是否有使用freebase数据转储创建数据库的任何现有方法,类似于freebase所提供的,但是在您自己的服务器上?相当多的免费库,但不是通过API在本地进行的吗? 我想可以创建,但是已经有解决方案了吗?还是没有使用API​​的类似数据的其他替代解决方案?我也没有为dbpedia找到这个: 问题答案: 看一下Google Code上的freebase-quad-rdfize项目。它应该

  • 在尝试使用Twython进行简单的推特搜索时 我得到了这个错误: 这里可能有什么问题?

  • 我有一个yii2基本模板在本地工作正常,但当我在服务器上上传文件时,它不工作。 index.php 当我打开URL它给了我以下错误 我发现这是由于在删除加载的文件时使用了导致的。但进一步说,我必须根据它更改供应商目录中的任何地方,我认为这不是一个好的做法。 有人能告诉我解决办法吗? 编辑:此问题是输入: '\' (ASCII=92)state=1中意外字符的重复

  • 我正在尝试使用 Django 通过 Apache 2.4.18 提供网页mod_wsgi并在访问本地主机时收到错误 403 禁止。 系统:LXLE Unix Apache 2.4.18 Django版本1.11.17 libapache2-mod-wsgi-py3i 遵循的程序:https://www.digitalocean.com/community/tutorials/how-to-serv

  • 我希望将状态添加到本地运行的无服务器框架节点应用程序。我遇到了官方的DynamoDb docker映像,我想使用无服务器框架,这个在docker上运行的Dynamodb实例在localhost:8000公开,而不使用sls安装的Dynamodb版本。 我已经尝试将其正常用于nodejs aws sdk,并将endpoint和区域配置为本地。新的用户表已经创建,可以通过aws cli访问数据库——e