来自iOS的Instagram签名API调用

来自iOS的Instagram签名API调用,ios,objective-c,iphone,api,instagram,Ios,Objective C,Iphone,Api,Instagram,为使Instagram post方法的签名API调用能够跟踪用户,如用户的图像等。用户每小时的跟踪次数限制为20次。但若我们进行签名API调用,那个么用户每小时可以进行60次跟踪。但我的问题是如何进行签名API调用 我尝试了Instagram上描述的这种方法,并启用了强制标头。我发送了带有有效Id的X-Insta-Forwarded-For标头字段。但20次之后,仍然显示了限制错误。任何人都可以帮助我如何进行签名API调用 提前感谢。在搜索了我的问题后,我通过让我的应用程序签名来解决我的问题:

为使Instagram post方法的签名API调用能够跟踪用户,如用户的图像等。用户每小时的跟踪次数限制为20次。但若我们进行签名API调用,那个么用户每小时可以进行60次跟踪。但我的问题是如何进行签名API调用

我尝试了Instagram上描述的这种方法,并启用了强制标头。我发送了带有有效Id的
X-Insta-Forwarded-For
标头字段。但20次之后,仍然显示了限制错误。任何人都可以帮助我如何进行签名API调用


提前感谢。

在搜索了我的问题后,我通过让我的应用程序签名来解决我的问题:

要为Instagram进行签名API调用,用户需要选中insta应用程序中的两个复选框。管理客户。并且必须遵循规则

对于所有后续/类似帖子类型的请求,用户需要添加一个标题: 类型为

X-Insta-Forwarded-For
->
[IP信息]|[Signature]

IP应该是应用程序负载平衡器检测到的客户端远程IP; 签名是,应用一个带有SHA256的HMAC,并将签名的十六进制表示附加到那里。使用
clientSecret
作为密钥,将
IP地址
作为数据。 然后使用管道
|
连接IP信息和签名,并将其设置为标题字段的值

我使用以下代码生成签名:

    -(NSString *)signWithKey:(NSString *)key usingData:(NSString *)data
    {
        const char *cKey  = [key cStringUsingEncoding:NSASCIIStringEncoding];
        const char *cData = [data cStringUsingEncoding:NSASCIIStringEncoding];

        unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];

        CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);

        NSData *HMAC = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)];

        return [[HMAC.description stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] stringByReplacingOccurrencesOfString:@" " withString:@""];
    }

-(NSString*)getheaderData
{
 NSString *ipString = [self fetchMyIP];
 NSString *signature = [self signWithKey:kClientSecret usingData:ipString];

}

To set header in iOS:  [request setValue:[self getheaderData] forHTTPHeaderField:@"X-Insta-Forwarded-For"];
-(NSString*)signWithKey:(NSString*)key usingData:(NSString*)data
{
const char*cKey=[key cStringUsingEncoding:NSASCIIStringEncoding];
常量字符*cData=[数据cStringUsingEncoding:NSASCIIStringEncoding];
无符号字符cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256、cKey、strlen(cKey)、cData、strlen(cData)、cHMAC);
NSData*HMAC=[[NSData alloc]initWithBytes:cHMAC长度:sizeof(cHMAC)];
返回[[HMAC.description stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@”“]]StringByReplacingOfString:@”“with String:@”“]的发生率;
}
-(NSString*)getheaderData
{
NSString*ipString=[self-fetchMyIP];
NSString*signature=[self-signWithKey:KClientCret usingData:ipString];
}
要在iOS中设置标头,请执行以下操作:[请求设置值:[self-getheaderData]forHTTPHeaderField:@“X-Insta-Forwarded-For”];
因此,API调用将作为签名API调用发送