我想在我的ios App中获取Facebook Mutual朋友
这是我尝试通过此链接呼叫的共同朋友
[NSString stringWithFormat:@"me/mutual_friends/%@?fields=installed",fbuserId]
它给我错误代码5
当我使用@"me/friends"
时
它返回结果
我也尝试使用图形api资源管理器,它提供了未知的路径
另外我的应用有user_friends权限 谁能告诉我正确的道路?
答案 0 :(得分:2)
你正在使用错误的端点语法,正如@CBroe已经指出的那样,文档中也清楚这一点。
您需要使用
/{user-id}.context/mutual_friends
{user-id}
是您感兴趣的用户,“其他”用户是访问令牌用于请求的用户。这仅适用于已经是您应用的用户的用户。
答案 1 :(得分:0)
是的,我很适合你的解决方案。
NSString *myFriendId = [NSString stringWithFormat:@"/%@",#YourFriendId#];
NSString *hashedAccessToken = [self hmac:accessToken withKey:kAPP_SECRETE];
NSDictionary *params = @{
@"fields" : @"context.fields(mutual_friends)",
@"appsecret_proof" : hashedAccessToken,
@"access_token" : accessToken
};
/* make the API call */
[FBRequestConnection startWithGraphPath:myFriendId parameters:params HTTPMethod:@"GET" completionHandler:^
(
FBRequestConnection *connection, id result, NSError *error
){//Handle Respons;}];
这是hmac函数(添加#import)
//SHA256 HASHMAC
- (NSString *)hmac:(NSString *)access_token withKey:(NSString *)app_secret
{
const char *cKey = [app_secret cStringUsingEncoding:NSASCIIStringEncoding];
const char *cData = [access_token cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSData *HMACData = [NSData dataWithBytes:cHMAC length:sizeof(cHMAC)];
const unsigned char *buffer = (const unsigned char *)[HMACData bytes];
NSMutableString *HMAC = [NSMutableString stringWithCapacity:HMACData.length * 2];
for (int i = 0; i < HMACData.length; ++i){
[HMAC appendFormat:@"%02x", buffer[i]];
}
return HMAC;
}