【问题标题】:Message 'The Twitter REST API v1 is no longer active. Please migrate to API v1.1'消息“Twitter REST API v1 不再处于活动状态。请迁移到 API v1.1'
【发布时间】:2014-08-04 22:33:38
【问题描述】:

这是我的Python 代码,它不再起作用了。我收到以下消息:“Twitter REST API v1 不再活动。请迁移到 API v1.1”。

Python 代码基本上使用 Python-Twitter 库向Twitter 询问用户“x”的状态,然后获取最后一个状态并搜索术语“#driptwit”。 如果找到,它将 ASCII 值 1 发送到串行端口(以及 Arduino)。如果找到#driptwitstop,它会发送一个 ASCII 值 0。最后,它会循环并每 15 秒检查一次 Twitter 帐户以查找更改。

如您所见,下面是您输入上一步从 Twitter 获得的密钥的地方。

我需要在代码中更改什么来修复它?

下面是实际代码:

Enter code here

##Import Libraries``

import twitter
import serial
import time

##Authenticate yourself with Twitter
api = twitter.Api(consumer_key='consumerkeyhere', consumer_secret='consumersecrethere', access_token_key='accesskey', access_token_secret='accesssecret')

##Set to your serial port
ser = serial.Serial('COM3', 19200)

## Check serial port
def checkokay():
    ser.flushInput()
    time.sleep(3)
    line = ser.readline()
    time.sleep(3)

    if line == ' ':
        line = ser.readline()
        print 'here'

    ## Welcome message
    print 'Welcome To Drip Twit!'
    print 'Making Coffee..'

def driptwit():
    status = [ ]
    x = 0

    status = api.GetUserTimeline('X') ##Grab latest statuses

    checkIt = [s.text for s in status] ##Put status in an array

    drip = checkIt[0].split() ##Split first tweet into words

    ## Check for match and write to serial if match
    if drip[0] == '#driptwit':
        print 'Tweet received, making coffee'
        ser.write('1')
    elif drip[0] == '#driptwitstop': ##Break if done
        ser.write('0')
        print 'Stopped, awaiting instructions.'
    else:
        ser.write('0')
        print 'Awaiting tweet'

while 1:
    driptwit() ## Call driptwit function
    time.sleep(15) ## Sleep for 15 seconds to avoid rate limiting.

【问题讨论】:

  • 您需要更改“import twitter”行调用的源代码/文件。
  • 这个答案可能会有所帮助:stackoverflow.com/questions/14713230/…
  • 感谢您的快速回复 DOK 我不明白我该怎么办

标签: python twitter arduino


【解决方案1】:

消息“Twitter REST API v1 不再处于活动状态。请迁移到 API v1.1'

https://api.twitter.com/1/ 将其更改为 https://api.twitter.com/1.1/

将两者都更改为 1.1 推特/twitteroauth.php:

application/third_party/hybridauth/Hybrid/Providers/Twitter.php:

【讨论】:

  • 简单而有效!
  • @imben 请粘贴完整的网址以获取特定频道的提要,谢谢
【解决方案2】:

您的 Twitter 模块所基于的 Twitter API 已停止使用。您需要参考更新后的 Twitter 包,该包将改为使用 1.1 API。

就像@Madbreaks 所说:您也许可以使用 Stack Overflow 问题 Authentication for new Twitter API 1.1 中提供的一些解决方案编写自己的解决方案。

您必须使用他们的 1.1 编写自己的 API,或者找到另一个已经支持 1.1 的包。错误信息的重要部分是:u'The Twitter REST API v1 is no longer active. Please migrate to API v1.1. dev.twitter.com/docs/api/1.1/overview.'

【讨论】:

  • Traceback (最近一次调用最后一次): File "C:\Python27\project\arduino project", line 53, in dritwit() ## calldriptwit function File "C:\Python27 \project\arduino project",第 32 行,在driptwit status = api.GetUserTimeline('x') ##grab latest statuses File "C:\Python27\lib\site-packages\twitter.py",第 2721 行,在 GetUserTimeline数据 = self._ParseAndCheckTwitter(json)
  • 文件“C:\Python27\lib\site-packages\twitter.py”,第 3869 行,在 _ParseAndCheckTwitter self._CheckForTwitterError(data) 文件“C:\Python27\lib\site-packages\ twitter.py",第 3894 行,在 _CheckForTwitterError 中引发 TwitterError(data['errors']) TwitterError: [{u'message': u'Twitter REST API v1 不再处于活动状态。请迁移到 API v1.1。 dev.twitter.com/docs/api/1.1/overview.', u'code': 68}] 这是我得到的输出我该怎么办?我不熟悉 whit python
  • @Avi 您必须使用他们的 1.1 编写自己的 API,或者找到另一个已经支持 1.1 的包。错误信息的重要部分是:u'The Twitter REST API v1 is no longer active. Please migrate to API v1.1. dev.twitter.com/docs/api/1.1/overview.'
  • @Avi 完全没问题。如果它解决了您的问题,请不要忘记接受答案。
猜你喜欢
  • 2013-06-09
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
相关资源
最近更新 更多