2

アプリケーションのみの認証 API を使用して、twitter API への認証呼び出しを実行しようとしています。

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] 
                                                       cachePolicy:NSURLRequestReloadIgnoringLocalCacheData 
                                                   timeoutInterval:20.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"Some App Name" forHTTPHeaderField:@"User-Agent"];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
[request setHTTPBody:[@"grant_type=client_credentials" dataUsingEncoding:NSUTF8StringEncoding]];

興味深いことに、authValueは HTTPHeaderField @"Authorization" に設定されていません。したがって、私の呼び出しはもちろん失敗します。他のすべてのヘッダー フィールドは正しく設定されています。

私はそれをチェックします

NSLog(@"Authorization, %@, %@", [request valueForHTTPHeaderField:@"Authorization"], authValue);

@"認証、(null)、theCorrectStuff を返す

なぜこうなった?すぐに設定できるはずですか、それとも何か不足していますか?

お時間を割いてご検討いただきありがとうございます、ファビアン

4

1 に答える 1

1

同じ問題がありました。authValue を出力します。おそらく改行が含まれています。base64 を実行した後のアプリケーションのみの認証では、authValue から新しい行を削除する必要があります。そうしないと、ヘッダー フィールドが設定されません。

または、Twitter REST API 1.1 ( https://github.com/nst/STTwitter ) 用に既に作成された Objective-C ライブラリを使用するだけです。

于 2013-09-17T14:54:49.733 に答える