无效的签名请求:缺少必需参数。

4
我在从 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);

        }
    }];

1
  1. 请发送所需的参数。
  2. 您应该假设使用UTF8编码,而不是ASCII。
- Avi
2个回答

5
看起来你已经启用了“强制签名请求”,因此需要你有一个API请求的签名参数“sig”,详见这里:https://www.instagram.com/developer/secure-api-requests/ 要么生成签名,要么禁用“强制签名请求”。
看起来你正在从应用程序(客户端)进行API调用,因此不建议进行签名请求,因为你必须在应用程序代码中保存“client_secret”。建议在服务器上执行此操作以确保安全。因此,只需为应用程序禁用“强制签名请求”并按原样进行API调用即可。

2

以下是对@krisrak答案的补充。

如何禁用强制签名请求:

前往https://www.instagram.com/developer/clients/manage/

选择所需的客户端进入安全选项卡,取消强制签名请求的勾选。

最后保存更新的更改即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接