2011-08-14 6 views
2

私はMGTwitterEngineとOAuthConsumerフレームワークを使用しています。そしてほとんどはUsingOAuthConsumerの指示に従ってください。TwitterのOAuthコールバック認証がCocoaアプリケーションで動作するようにできません

OAuthを使用し、ユーザーがoob PINベースの認証を処理しないようにするには、アプリケーションへのコールバックを有効にする必要があります。これをデスクトップ(またはiOS)アプリケーションで行うには、アプリケーションのイベントハンドラに行くカスタムURIスキームを設定する必要があります。これを動作させ、SafariのカスタムURIを使用してテストしました。私のアプリが開き、正しいメソッドが呼び出されます。ここまでは順調ですね。

Twitterでこれを行うには、Twitterの開発サイトのアプリケーションの設定でコールバックURIを指定する必要があります。ここで問題が始まります。 Twitterは非標準のURIを許可しません。したがって、 "myapp:// oauth /"は許可されません。これはhttpまたはhttps URIでなければなりません。私が参照したすべてのウェブサイトでは、ここにプレースホルダを置いて、要求トークン要求を上書きすると言っています。はい、私はここに私のウェブサイトのためのダミーのURLを入れます。オーバーライドを実装するようになりました。

OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url 
                   consumer:consumer 
                    token:nil 
                    realm:nil 
                 signatureProvider:nil]; 

[request setOAuthParameterName:@"oauth_callback" withValue:@"callbackurl:"]; 

この2番目のメソッド呼び出しを追加すると、今度はTwitterへのリクエストが失敗するようになりました。 NSURLErrorDomainエラー-1012またはそれに類するもの(番号を書き留めているのを忘れていました)。

私はいくつかの方法を試しましたが、コールバックURLをオーバーライドできませんでした。誰もこれを行う確かな方法を持っていますか?今のところ、OOB PIN認証方式を使用するようにアプリを変更しましたが、その不要な手順を削除することをお勧めします。

ありがとうございます!

ジョー

+0

FailRequestToken: 'Error Domain = NSURLErrorDomain Code = -1012 "操作を完了できませんでした(NSURLErrorDomainエラー-1012)。" UserInfo = 0x5c43c30 {NSErrorFailingURLKey = http://api.twitter .com/oauth/request_token、NSErrorFailingURLStringKey = http://api.twitter.com/oauth/request_token、NSUnderlyingError = 0x5c44ca0 "操作を完了できませんでした(kCFErrorDomainCFNetworkエラー-1012)。"} ' – Flyingdiver

+0

誰でもヒントがあります全く?これが議論される他のフォーラムへのポインタさえ? – Flyingdiver

答えて

0

私は最終的にOAuthConsumerフレームワークをあきらめたとGoogle GTMOAuthの枠組みに切り替えます。それはうまく動作します。

+0

'oauth_callback'パラメータに何が間違っているかのヒントはありますか?このパラメータが 'oob'以外のものであれば、動作させることはできません。 –

関連する問題