我从response
获取照片时获得了以下Instagram
。请帮助任何帮助将不胜感激。
{
code = 403;
"error_message" = "Invalid signed-request: Missing required parameter 'sig'";
"error_type" = OAuthForbiddenException;
}
这是我的代码
NSURL *url = [NSURL URLWithString:@"https://api.instagram.com/v1/tags/nofilter/media/recent?access_token=...........aef2"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (error){
}
else {
NSString * a = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSDictionary *tokenData = [jResponse objectWithString:a];
NSLog(@"%@",tokenData);
}
}];
答案 0 :(得分:4)
您似乎启用了Enforce Signed Requests
,因此它要求您拥有sig
参数,该参数是API请求的签名,如下所述:https://www.instagram.com/developer/secure-api-requests/
生成签名或禁用Enforce Signed Requests
看起来您正在从应用(客户端)进行API调用,因此不建议发出签名请求,因为您必须在应用代码中保存client_secret
。建议在服务器上执行此操作以确保安全。因此,只需为您的应用停用Enforce Signed Requests
,然后按原样调用API。
答案 1 :(得分:0)
@krisrak答案的继续。
要禁用“执行已签名的请求”。
转到https://www.instagram.com/developer/clients/manage/
选择所需的客户。 转到安全性。取消选中强制执行已签名的请求
并保存更新的更改。