来自iOS的Instagram签名API调用
为使Instagram post方法的签名API调用能够跟踪用户,如用户的图像等。用户每小时的跟踪次数限制为20次。但若我们进行签名API调用,那个么用户每小时可以进行60次跟踪。但我的问题是如何进行签名API调用 我尝试了Instagram上描述的这种方法,并启用了强制标头。我发送了带有有效Id的来自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调用 提前感谢。在搜索了我的问题后,我通过让我的应用程序签名来解决我的问题:
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调用发送