2013-10-18 46 views
0

我正在嘗試讓我的樹莓派在特定用戶的Twitter上使用特定主題標籤查看Twitter的推文。當它看到滿足條件的推文時,它應該拍攝一張照片,然後將圖片發回給用戶。它一直運行到它應該上傳圖片的地步,然後我得到一個「Twitter API返回401(未授權)」。我不知道它爲什麼要返回一個401,因爲憑證可以在腳本的流式傳輸部分提前工作。任何幫助將非常感激!嘗試使用媒體更新時Twython 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) + '[email protected]' + str(screen_name) + '.png -t 3000 -w 1080 -h 720 -n -vf') 

def photo(id_str, screen_name): 
    open('/home/pi/' + str(id_str) + '[email protected]' + 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') 

回答

0

我創建了新的oauth祕密並解決了問題。但是,現在它返回:

「TwythonError:Twitter API返回403(禁止),缺少或無效的url參數。」