0

特定のハッシュタグを使用して、特定のユーザーのツイートをラズベリーパイで監視しようとしています。条件を満たすツイートを見つけたら、写真を撮り、その写真をツイートしてユーザーに返します。写真をアップロードする必要があるところまで動作し、「Twitter API が 401 (Unauthorized) を返しました」というメッセージが表示されます。資格情報はスクリプトのストリーミング部分で以前に機能するため、401 が返される理由はわかりません。どんな助けでも大歓迎です!

from twython import Twython
from twython import TwythonStreamer
import sys
import os

APP_KEY = 'X'
APP_SECRET = 'X'
OAUTH_TOKEN = 'X'
OAUTH_TOKEN_SECRET = 'X'

def takePicture(id_str, screen_name):
    os.system('raspistill -o ' + str(id_str) + '_@' + str(screen_name) + '.png -t 3000 -w 1080 -h 720 -n -vf')

def photo(id_str, screen_name):
    open('/home/pi/' + str(id_str) + '_@' + str(screen_name) + '.png', 'rb')

def uppic(screen_name):
    twitter.update_status_with_media(status='@' + str(screen_name) + ' is super awesome!', media=photo)

class MyStreamer(TwythonStreamer):
    def on_success(self, data):
        print data['user']['screen_name'].encode('utf-8')
        print data['id_str'].encode('utf-8')
        print data['text'].encode('utf-8')
        takePicture(data['id_str'], data['user']['screen_name'])
        photo(data['id_str'], data['user']['screen_name'])
        uppic(data['user']['screen_name'])

    def on_error(elf, status_code, data):
        print status_code

stream = MyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

stream.statuses.filter(track='#hashtag @user')
4

1 に答える 1

0

新しい oauth シークレットを作成したところ、問題は解決しました。ただし、現在は次のように返されます。

「TwythonError: Twitter API が 403 (禁止) を返しました。URL パラメーターが見つからないか無効です。」

于 2013-10-18T15:58:30.327 に答える