我试图让 reverse_oauth 在 iPhone 应用程序上工作,但我遇到了一些关于 POST 请求以及我实际应该发送的值的问题,所以我的问题是双重的。
我正在尝试遵循 twitter 在此处发布的指南:https ://dev.twitter.com/docs/ios/using-reverse-auth
第一个问题是关于 oauth_nonce,或者更确切地说,我如何获取要发送的值?我知道 oauth_nonce 是由算法 HMAC-SHA1 散列的随机生成的字符串,但是我是否应该在每次我想发出请求时生成一个散列的随机字符串?或者它是一个应该基于某些东西散列的值?
我的 POST 请求目前看起来像这样:
NSString *twitterUrlToPing = @"https://api.twitter.com/oauth/request_token";
NSURL *twitterUrl = [NSURL URLWithString:twitterUrlToPing];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:twitterUrl];
[req addValue:@"xxx" forHTTPHeaderField:@"oauth_consumer_key"];
[req addValue:@"xxx" forHTTPHeaderField:@"oauth_nonce"];
[req addValue:@"HMAC-SHA1" forHTTPHeaderField:@"oauth_signature_method"];
[req addValue:timeStampString forHTTPHeaderField:@"oauth_timestamp"];
[req addValue:@"1.0" forHTTPHeaderField:@"oauth_version"];
[req addValue:@"reverse_auth" forHTTPHeaderField:@"x_auth_mode"];
[req setHTTPMethod:@"POST"];
NSLog(@"twitterHeaderPostvalues: %@", [req allHTTPHeaderFields]);
NSURLResponse *response;
NSError *err;
NSData *responseData = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&err];
NSString *content = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"contentResponseFromTwitter: %@", content);
这是发送请求的正确方法吗?如果不是,它应该是什么样子?