2016-03-02 67 views
0

我想測試的OAuth使用代碼的課程訪問Twitter。我有一個名爲twurl.py一個python腳本持有該代碼(隱藏保存鍵/令牌):Python中的OAuth()來訪問Twitter,「沒有模塊的OAuth」

import urllib 
import oauth 
import hidden 

def augment(url, parameters) : 
secrets = hidden.oauth() 
consumer = oauth.OAuthConsumer(secrets['consumer_key'], secrets['consumer_secret']) 
token = oauth.OAuthToken(secrets['token_key'],secrets['token_secret']) 

oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, 
    token=token, http_method='GET', http_url=url, parameters=parameters) 
oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, token) 
return oauth_request.to_url() 

我呼籲擴充功能在另一個腳本twtest.py:

import urllib 
from twurl import augment 

url = augment('https://api.twitter.com/1.1/statuses/user_timeline.json', 
{'screen_name': 'user', 'count': '2'}) 
print url 
connection = urllib.urlopen(url) 
data = connection.read() 
print data 
headers = connection.info().dict 
print headers 

我遇到了這個錯誤:

Traceback (most recent call last): 
File "/Users/user/Desktop/python/twtest.py", line 7, in <module> 
{'screen_name': 'user', 'count': '2'}) 
File "/Users/user/Desktop/Python/twurl.py", line 6, in augment 
secrets = hidden.oauth() 
AttributeError: 'module' object has no attribute 'oauth' 

此代碼在我正在使用的在線講座中學習。 Oauth是我安裝的pip,我可以調用dir(oauth)。

我缺少什麼,爲什麼不與twurl腳本一起導入OAuth的?即使我在twtest.py中導入oauth也會出現相同的錯誤。 謝謝!

編輯:

隱藏模塊稱爲變量的列表:

consumer_key = 'string' 
consumer_secret = 'string' 
token_key = 'string' 
token_secret = 'string' 
+1

你可以發佈'hidden'模塊嗎?當然隨意離開了真實密碼等 –

+0

當然,原來的文章編輯 – jason

+0

我沒有看到一個名爲'oauth'的'hidden'模塊中的任何東西。因此,'hidden.oauth'導致錯誤。 –

回答

0

我剛剛經歷了同樣的問題(從查博士課程的蟒蛇指HTE twurl.py腳本)來了。

一切正常,當我把所有的Python腳本在同一文件夾中twurl.py(廣告特別oauth.py)。

我的理解是,twurl.py腳本需要其它腳本(oauth.py),以及安裝新的庫(比如通過PIP安裝程序的OAuth)沒有做任何更改。

0

我有同樣的問題。我在書*Python for Everybody第167頁找到了解決方案。

For this next sample program we will download the files twurl.py, hidden.py, oauth.py, and twitter1.py from www.py4e.com/code and put them all in a folder on your computer.