3

这是我不再工作的Python代码。我收到此消息:“Twitter REST API v1 不再活动。请迁移到 API v1.1”。

Python 代码基本上使用 Python-Twitter 库向Twitter询问用户“x”的状态,然后获取最后一个状态并搜索术语“#driptwit”。如果找到,它将 1 的ASCII值发送到串行端口(和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.
4

2 回答 2

4

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

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

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

应用程序/third_party/hybridauth/Hybrid/Providers/Twitter.php:

于 2014-08-04T14:33:38.457 回答
2

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

就像@Madbreaks 所说:您可以使用 Stack Overflow question 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.'

于 2013-06-14T19:03:45.833 回答