2012-12-05 106 views
0

我花了最後一天(注意:新手Objective-C程序員,但很多其他語言的經驗)弄清楚爲什麼gtm-oauth2不會連接到Basecamp API,但現在我'已經放棄並在這裏問。無法連接到Basecamp API與gtm-oauth2

因此,我有一個從頭開始編寫的應用程序,它不起作用,所以我砍掉了gtm-oauth2提供的官方OAuth2Sample,只是改變了Dailymotion示例的值與Basecamp Auth的正確值,我也得到了相同的錯誤。

我得到登錄頁面,然後點擊「是的,我將允許訪問」,然後授權頁面和錯誤發生。

在API控制檯我得到:

The operation couldn’t be completed. (com.google.GTMOAuth2 error -1000.) 

,並在Xcode輸出我得到:

2012-12-05 09:35:45.569 OAuth2Sample[29512:303] *** Assertion failure in -[GTMOAuth2SignIn requestRedirectedToRequest:], /Path/To/Xcode/gtm-oauth2-read-only/Examples/OAuth2Sample/../../Source/GTMOAuth2SignIn.m:400 
2012-12-05 09:35:45.570 OAuth2Sample[29512:303] *** WebKit discarded an uncaught exception in the webView:resource:willSendRequest:redirectResponse:fromDataSource: delegate: <NSInternalInconsistencyException> response lacks auth code or error 

如前所述,該代碼是一樣的,在谷歌提供的樣品,我只是更改了身份驗證,令牌和重定向URL值。

UPDATE:將範圍縮小到這一點:在線路394有NSString *responseStr = [[redirectedRequest URL] query];應該得到查詢,但得到爲零,因爲URL是

2012-12-05 14:02:18.591 Basecamper[32630:303] req: http://madebybandit.com/#access_token=BAhbBy…long token here…2898 

所以我嘗試fragment代替query所以現在拋出這個:

2012-12-05 14:07:05.955 Basecamper[32630:303] -[__NSCFString unsignedLongValue]: unrecognized selector sent to instance 0x101a74f30 
2012-12-05 14:07:05.956 Basecamper[32630:303] *** WebKit discarded an uncaught exception in the webView:resource:willSendRequest:redirectResponse:fromDataSource: delegate: <NSInvalidArgumentException> -[__NSCFString unsignedLongValue]: unrecognized selector sent to instance 0x101a74f30 

現在呢?

+0

您的帖子中沒有足夠的信息來知道發送到服務器的內容或正在接收什麼響應。 gtm-oauth2代碼嘗試從重定向URL獲取訪問代碼,而不是訪問令牌,所以有關Basecamp協議或您對該協議的使用與圖書館期望的有所不同。 – grobbins

+0

@grobbins正如我在UPDATE中所解釋的那樣,我已經發現Basecamp API除了使用#之外還有其他一些正確的功能嗎?在URL中。但是現在''unsigned long deltaSeconds = [expiresIn unsignedLongValue];'有一些問題。當我斷點它並嘗試'po expiresIn'我得到'(NSNumber *)$ 51 = 0x0000000101d665d0 1209600'但是當我嘗試'po [expiresIn unsignedLongValue]'它返回'(id)$ 52 = 0x0000000000000000 '所以應用程序崩潰。 –

回答