1

次のコードを使用して、Twitter からリクエスト トークンを取得しようとしています。

NSMutableURLRequest *mURLRequest = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"]];
mURLRequest.HTTPMethod = @"POST /oauth/request_token HTTP/1.1";
[mURLRequest setValue:@"User-Agent" forHTTPHeaderField:@"Coupled HTTP"];
[mURLRequest setValue:@"OAuth oauth_callback=\"http%3A%2F%2Fbytolution.com\"" forHTTPHeaderField:@"Authorization"];
[mURLRequest setValue:@"api.twitter.com" forHTTPHeaderField:@"Host"];
[mURLRequest setValue:@"Accept" forHTTPHeaderField:@"*/*"];

NSHTTPURLResponse *urlResponse;
NSError *error;
NSError *serializationError;
NSData *responseData = [NSURLConnection sendSynchronousRequest:mURLRequest returningResponse:&urlResponse error:&error];
NSLog(@"data: %@, response:%@, error: %@", [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&serializationError], urlResponse.allHeaderFields, error);

しかし、私が返すのは次のとおりです。

data: (null), response:{ Connection = close; "Content-Length" = 0; }, error: (null)

このトピックに関する Twitter のドキュメントは次のとおりです。

ご協力いただきありがとうございます!

4

2 に答える 2

1

複数のエラー (リストが完全かどうかはわかりません。これは私が一目で見つけたものです):

  • HTTP メソッドは、単純@"POST"に 、not @"POST foo"@"POST or I will kill you"またはその他にする必要があります。
  • 同様に、@"OAuth oauth_callback=\""する必要があり@"oauth_callback=\""ます。
  • 、、、、などoauth_consumer_keyの必要なすべてのヘッダー フィールドを含めていません。oauth_signatureoauth_signature_methodoauth_nonceoauth_timestamp
  • これは JSON を返しません。公式ドキュメントの例のような、URL エンコードされた応答を返します。
于 2013-02-16T18:17:36.550 に答える