来自 iOS 的 Instagram 签名 API 调用

问题描述 投票:0回答:1

对 Instagram 帖子方法进行签名 API 调用以关注用户、点赞用户的图像等。用户每小时的关注次数限制为 20 次。但如果我们进行签名 API 调用,那么用户每小时可以进行 60 次关注。我的问题是如何进行签名 API 调用?

我按照 Instagram http://instagram.com/developer/restrict-api-requests/ 上的描述尝试了这种方法,并启用强制标头。并发送了具有有效 ID 的

X-Insta-Forwarded-For
标头字段,但在 20 后仍然遵循它显示极限错误。谁能帮助我如何进行签名 API 调用?

ios objective-c instagram
1个回答
2
投票

搜索完我的问题后,通过制作我的应用程序签名应用程序来解决我的问题:

要为 Instagram 用户进行签名 API 调用,需要选中其 insta 应用程序中的两个复选框。在管理客户下。并且必须遵循 隐式 OAuth 授权流程

对于所有关注/点赞帖子类型请求,用户需要添加一个标头: 类型为

X-Insta-Forwarded-For
->
[IP information]|[Signature]

IP 应该是应用程序负载均衡器检测到的客户端远程 IP; 签名为 ,应用具有 SHA256 的 HMAC,并在此处附加签名的十六进制表示形式。在

IP address
作为数据,使用您的
clientSecret
作为键。 然后使用管道
|
连接 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"];

因此 API 调用将作为签名 API 调用发送。

© www.soinside.com 2019 - 2024. All rights reserved.