2010-07-10 33 views
0

我正在開發測試應用程序,以幫助我更好地理解oAuth與Twitter API合作的方式,以便爲我想寫的更大的應用程序提供幫助,但是我遇到了將消息發佈到API的問題成功獲取訪問令牌後。Twitter API + OAuthConsumer.framework

我用OAuthConsumer框架,這似乎是通過溜溜球是OAuth的工作最簡單的方法...

我的代碼是進一步下跌,與控制檯日誌一起,和我有包含指向XCode項目的ZIP文件的鏈接。

http://dropbox.unknowndomain.co.uk/oAuth-Test-App.zip

錯誤:

Error Domain=NSURLErrorDomain Code=-1012 UserInfo=0x10029a100 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" Underlying Error=(Error Domain=kCFErrorDomainCFNetwork Code=-1012 UserInfo=0x100296310 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)")

這是我回來的錯誤,當它調用API發送鳴叫,現在記住,我已經使用這個完全相同的代碼在沒有問題的情況下調用API上的未受保護的資源,並且得到了一個響應,但是當發送推文時,我得到一個錯誤,在仔細調查的時候,我得到了一些錯誤401的提示,表明以前的密鑰無效,但我無法想象爲什麼。

我一直坐在這一個星期現在完全難倒了,所以幫助不管經驗可能只是發現一個隱藏的問題,說幾個人似乎有這個-1012錯誤的谷歌代碼頁面,但有那裏沒有答案。 `

控制檯登錄:

2010-07-10 23:15:08.909 oAuth Test App[1732:a0f] Request Token: oauth_token= *** &oauth_token_secret= *** &oauth_callback_confirmed=true

2010-07-10 23:15:21.131 oAuth Test App[1732:a0f] Access Token: oauth_token= *** &oauth_token_secret= *** &user_id= *** &screen_name= ***

2010-07-10 23:15:29.439 oAuth Test App[1732:a0f] EPIC FAIL!

2010-07-10 23:15:29.440 oAuth Test App[1732:a0f] Access Token: <OAToken: 0x125408160>
2010-07-10 23:15:29.440 oAuth Test App[1732:a0f] Key: ***
2010-07-10 23:15:29.440 oAuth Test App[1732:a0f] Secret: ***

2010-07-10 23:15:29.440 oAuth Test App[1732:a0f] Service Ticket: <OAServiceTicket: 0x100296050>

2010-07-10 23:15:29.457 oAuth Test App[1732:a0f] Data: Error Domain=NSURLErrorDomain Code=-1012 UserInfo=0x10029a100 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" Underlying Error=(Error Domain=kCFErrorDomainCFNetwork Code=-1012 UserInfo=0x100296310 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)")

Thanks for your help!

+0

Pwease !必須有人可以幫助嗎? – unknowndomain 2010-07-13 21:48:28

+1

所以很多人都有這個問題,包括我自己。沒有人似乎有答案。 – shawnwall 2010-08-20 12:27:54

+0

今天我剛剛得到了這個問題。你最終找到一個解決方案/解決? – skorulis 2010-09-07 05:27:38

回答

2

其實同時@skorulis是正確的存在與簽名提供的一個問題,在Twitter的API方面似乎API的某些部分是開心的純文本簽名而有些則需要HMAC-SHA1 ...

使用此爲signatureProvider:將解決任何問題,包括上述問題...

[[[OAHMAC_SHA1SignatureProvider alloc] init] autorelease] 

也有一個第二問題,即從服務器下載的內容並不總是完整的,或垃圾文本進行了補充。 ..

可愛的人IRC能夠幫助解決這個問題,在案例它使用stringWithCString:其折舊和替代...

stringWithCString:encoding:也用它尋找一個空字符到錯誤的事情最終,幸運的是我的應用程序並沒有因爲這個崩潰,但它在繼續獲取內存,直到它發現這種類型的人物,往往有一段時間...

而是使用:

[[[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding] autorelease] 
+0

順便說一句我在@skorulis之前找到了解決方案,但沒有看到評論,對於後期發佈感到抱歉。 – unknowndomain 2010-09-07 23:13:51

+0

stringWithCString已被折舊到10.5,但我從來沒有找到一個很好的替代,直到現在: message = [NSString stringWithCString:(buffer + 4)length:(arg2 -5)];消息= [[[NSString alloc] initWithBytes:(buffer + 4)length:(arg2 -5)encoding:NSASCIIStringEncoding] autorelease]; – CocoaChris 2013-07-15 19:21:36

1

我發現,因爲我創造我OAMutableURLRequest在使用OAPlaintextSignatureProvider作爲signatureProvider,我是收到此錯誤。傳遞零而不是工作正常。