我试图通过向以下URL发出POST请求来从Yahoo获取请求令牌: https://api.login.yahoo.com/oauth/v2/get_request_token
我以下列方式提出请求:
int randomNumber = rand();
NSDictionary *parameters = @{@"oauth_consumer_key": YahooConsumerKey,
@"oauth_signature_method": @"plaintext",
@"oauth_signature": YahooConsumerSecret,
@"oauth_version": @"1.0",
@"xoauth_lang_pref": @"en_us",
@"oauth_callback": @"oob",
@"oauth_timestamp": [self getTimeStamp],
@"oauth_nonce": [NSString stringWithFormat:@"%d", randomNumber]};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"https://api.login.yahoo.com/oauth/v2/get_request_token" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
问题是我不断收到错误401,并说明消费者密钥未知。我已经粘贴了我创建项目的消费者密钥,所以我真的不知道我做错了什么。任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
您的要求看起来不错。尝试将@"%26"
附加到YahooConsumerSecret
字符串。这是你的请求link和修复,它似乎正在运作!
使用plaintext
作为oauth_signature_method
时,您需要根据Yahoo文档在%26
的末尾添加oauth_signature
。