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

时间:2016-02-16 09:37:47

标签: ios objective-c xcode instagram instagram-api

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

        }
    }];

2 个答案:

答案 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/

选择所需的客户转到安全性。取消选中强制执行已签名的请求

并保存更新的更改。