2011-05-12 12 views
2

私はiPadアプリを持っており、それにvimeoを統合する必要があります。私はそれを私のアプリに統合する初期段階にいる。私はまず、vimeoを使って自分のアプリケーションを認証する必要があります。vimeo iPhoneアプリからの認証

私はdocumenattionにおける認証のための手順を行ってきたと私は最初の2つの段階を通過することができるよ:

リクエストトークン: http://vimeo.com/oauth/request_token

ユーザー認証: http://vimeo.com/oauth/authorize

しかし、最後のステップでoauth_tokenとoauth_token_secretを取得できません:

アクセストークン: http://vimeo.com/oauth/access_token

Vimeoは、検証者と認可トークンを取得するまで、アプリに戻ってくるのではなく、コールバックURLにリダイレクトします。しかし、これらを使用してoauth_tokenとoauth_token_secretを取得すると、コンソールに次のエラーメッセージが表示されます。

エラードメイン= NSURLErrorDomainコード= -1012「NSURLErrorDomainエラー-1012」エラー:UserInfo = 0x18146180 { NSErrorFailingURLKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229、NSErrorFailingURLStringKey = http://vimeo.com/oauth/access_token?oauth_token=141b4ff56c48dc5d03501297bde85ebc&oauth_verifier=land-1886924229、NSUnderlyingError = 0x181483d0 "操作を完了できませんでした。(kCFErrorDomainCFNetworkエラー-1012。)"}

誰が助けるか、少なくともいくつかの方向性を提供していただけますか?

さらに洞察を与えるために、私はOAuthConsumerフレームワークを使用しています。以下は、私たちがアクセストークンを取得するための要求を置き、コードの行は、次のとおりです。

  • (無効)successfulAuthorizationWithToken:(NSStringの*)トークン検証:(NSStringの*)検証{ のNSLog( "successfulAuthorizationWithToken" @)。 OAMutableURLRequest * request; OADataFetcher * fetcher;

    // NSURL * url = [NSURL URLWithString:@ "https://api.twitter.com/oauth/access_token"]; NSURL * url = [NSURL URLWithString:@ "http://vimeo.com/oauth/access_token"]; リクエスト= [[[OAMutableURLRequest alloc] initWithURL:url コンシューマ:self.consumer トークン:アクセストークン レルム:なし signatureProvider:nil autorelease];

    OARequestParameter * p0 = [[OARequestParameter alloc] initWithName:@ "oauth_token" value:token]; OARequestParameter * p1 = [[OARequestParameter alloc] initWithName:@ "oauth_verifier" 値:検証者]; NSArray * params = [NSArray arrayWithObjects:p0、p1、nil]; [setParameters:params]を要求します。

    fetcher = [[[OADataFetcher alloc] init] autorelease];

    [フェッチャfetchDataWithRequest:要求 デリゲート:自己 didFinishSelector:@selector(accessTokenTicket:didFinishWithData :) didFailSelector:@selector(accessTokenTicket:didFailWithError :)]。

    [p0リリース]; [p1リリース];リンクの下で指定された

}

私も試した解決策は: Twitter API + OAuthConsumer.framework

それはsignatureProviderとして[[[OAHMAC_SHA1SignatureProviderのalloc]のinit] autoreleaseの]を使用することを言います。しかし結果は同じです。

は私が検証を取得し、アクセストークンステップを使用してトークンの認可後の値を、次の取得する必要があります。 oauth_token = YourAuthorizedOauthToken & oauth_token_secret = YourAuthorizedTokenSecretあなたはmyapp://...のように見えるあなたの要求に独自のコールバックを提供する必要が

答えて

0

最終的には動作しました。ベースストリングとoAuthヘッダーストリング形式に問題がありました。

+2

こんにちは、私は同じ問題があります。どのように解決しましたか? – Janub

0

iOSのmyappハンドラを登録してください。ブラウザがリダイレクトされると、iOSによってコントロールがアプリに返されます。私はあなたがOAuthを適切に使用していると仮定しており、ユーザーの操作のためにあなたのアプリからブラウザを起動します。代わりにWebViewを使用することもできます(OAuthが推奨するものではありません).WebViewデリゲートでリダイレクトをキャッチして、access tokeをパースすることができます。

+0

ベリファイアと認可トークンを使用してoauth_tokenとoauth_token_secretを取得する必要があります。私は、アプリケーションがコールバックURLにリダイレクトされ、webviewデリゲートメソッドのリクエストURLから検証者と認可トークンを取得する、第2段階の "User Authorization"の後に検証者と認可トークンを取得します。しかし、今私は問題に直面する最後のステップでこれらを使用してoauth_tokenとoauth_token_secretを取得する必要があります。 – random

+0

さて、さらに調査したところ、エラーが発生しました:401 Unauthorized - Invalid signature - 渡されたoauth_signatureが無効です。私のベース署名鍵は、GET&HTTP%3A%2F%2Fvimeo.com%2Foauth%2Faccess_token&oauth_consumer_key%3D97823cb1ff039bce66966341928a7db2%26oauth_nonce%3DDEE0A217-620E-459A-8BF3-BE7F5B9F281A%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1305198917%26oauth_token%3Dd545d685bb6a38f9ce108c99b9175bbb%26oauth_verifier%3Dpulseあります-2088361215%26oauth_version%3D1.0誰が問題をどこに伝えることができますか? – random

関連する問題