4

Fitbit 統合を iOS アプリに追加しようとしています。これがどれほど難しいかを知って驚いています... iOS SDKがあるだろうと想像していました。

いずれにせよ、Web ベースの API を介してデータを取得しようとしています。OAuth 1 & 2 を使用します。

私は両方を試しましたが、OAuth 2.0 でさらに進歩しました。

現在、AFOAuth2Managerを使用して接続しています。残念ながら、うまく機能していません。

アカウント情報でデモ コードを使用すると、次のエラーが表示されます。

リクエストに失敗しました: 受け入れられないコンテンツ タイプ: text/html

追加することにより:

OAuth2Manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];

そのエラーは消えますが、新しいエラーが表示されます:

JSON テキストが配列またはオブジェクトで始まっておらず、フラグメントを許可するオプションが設定されていませんでした。

リクエストを行うために使用しているコードは次のとおりです。

AFOAuth2Manager *OAuth2Manager =
        [[AFOAuth2Manager alloc] initWithBaseURL:baseURL
                                        clientID:@"CLIENT_ID"
                                          secret:@"CLIENT_SECRET"];

OAuth2Manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];

[OAuth2Manager authenticateUsingOAuthWithURLString:@"/oauth2/authorize"
                                          username:USER_NAME
                                          password:USER_PASSWORD
                                             scope:@"activity"
                                           success: ^(AFOAuthCredential *credential) {
    NSLog(@"Token: %@", credential.accessToken);
}
                                           failure: ^(NSError *error) {
    NSLog(@"Error: %@", error);
}];

NSJSONReadingAllowFragments を追加してみました。しかし、それをエラーなしでコードに入れることができませんでした。

//OAuth2Manager.responseSerializer.readingOptions = NSJSONReadingAllowFragments;
4

1 に答える 1

1

私の場合、ベース URL に間違ったパスを追加しました。たとえば、私のパスは「/oauth/access_token」でした。

于 2015-06-02T22:37:38.870 に答える