8

私は一日中これについて頭を悩ませてきました。

iOS アプリを Withings API と統合したいと考えています。OAuth 1.0 を使用しており、実装方法が完全には理解できないようです。

複数の OAuth フレームワーク ( MPOAuthgtm-oauthssoauthkit ) をダウンロードしましたが、正確に何をすべきかを完全に理解できませんでした。

また、スタック オーバーフローで、OAuth 1.0 の一般的な実装と Withings との統合に関する適切なリファレンスを探しましたが、特に成功しませんでした。

OAuth 1.0 を必要とする API と iOS アプリを統合するフローを説明してください。コード例は非常に役立ちます。提案されたサードパーティのフレームワークもいいでしょう。

明確にするために、私は OAuth 1.0 の原則を完全に理解していますが、アプリに実際に実装する際に問題があります。

コード例と適切なリファレンスを含む完全な回答は、見つけることができなかったので、多くの人にとって非常に役立つと思います. 誰かがそれを実装した良い経験を持っている場合は、時間をかけて共有してください.

4

3 に答える 3

3

さらに、ここにリクエストヘッダーを保存します

NSMutableDictionary *dict2 = [NSMutableDictionary dictionary];
[dict2 setObject:CALL_BACK_URL forKey:@"oauth_callback"];
NSURLRequest *rq2 = [TDOAuth URLRequestForPath:@"/authorize"
                                 GETParameters:dict2
                                        scheme:@"https"
                                          host:@"oauth.withings.com/account"
                                   consumerKey:WITHINGS_OAUTH_KEY
                                consumerSecret:WITHINGS_OAUTH_SECRET
                                   accessToken:self.token
                                   tokenSecret:self.tokenSecret];
headers = rq2.allHTTPHeaderFields;

コールバック メソッドでは、不足しているパラメーターをリクエストに追加します。このようにすることで、「醜いパッチアップ修正」を回避します。

- (BOOL)webView:(UIWebView *)wV shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (![request.allHTTPHeaderFields objectForKey:@"Authorization"] &&
    [request.URL.absoluteString rangeOfString:@"acceptDelegation=true"].location == NSNotFound){
    NSMutableURLRequest *mutableCp = [request mutableCopy];
    NSLog(@"request :::%@", request);
    [mutableCp setAllHTTPHeaderFields:headers];
    dispatch_async(dispatch_get_main_queue(), ^{
        [webView loadRequest:mutableCp];
    });
    return NO;
}
return YES;
}

私はそれが誰かを助けることを願っています

于 2013-08-25T14:04:09.683 に答える
0

このプロジェクトを参照として、また実際に機能する OAuth クラスとして確認することをお勧めします。これは別の優れたプロジェクトから継承しているため、両方を自分のプロジェクトに追加する必要があります。ライセンスが要件に適合するかどうかを確認してください。 https://github.com/rsieiro/RSOAuthEngine

于 2013-04-10T16:16:46.447 に答える