私は最終日 (注: 初心者の Objective-C プログラマーですが、他の言語での経験は豊富です) gtm-oauth2がBasecamp APIに接続しない理由を理解するのに費やしましたが、今はあきらめてここで質問しました。
だから私はゼロから書かれたアプリを持っていて、それが機能しなかったので、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
前述のように、コードは Google 提供のサンプルと同じです。認証、トークン、およびリダイレクト URL の値を変更しただけです。
更新:これに絞り込みました:394行目でNSString *responseStr = [[redirectedRequest URL] query];
、クエリを取得する必要がありますが、URLがnilであるためnilになります
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
それで?