Ios 获取我和其他用户之间的Facebook好友
我想在我的ios应用程序中获取Facebook共同好友 这是我试图通过这个链接找到共同的朋友Ios 获取我和其他用户之间的Facebook好友,ios,facebook,facebook-graph-api,Ios,Facebook,Facebook Graph Api,我想在我的ios应用程序中获取Facebook共同好友 这是我试图通过这个链接找到共同的朋友 [NSString stringWithFormat:@"me/mutual_friends/%@?fields=installed",fbuserId] 它给了我错误代码5 当我使用@“我/朋友” 它返回结果 我还尝试使用graph api explorer,它提供未知路径 我的应用程序还具有用户\好友权限 有人能告诉我正确的路径吗?正如@CBroe已经指出的那样,您使用了错误的端点语法,这一点在
[NSString stringWithFormat:@"me/mutual_friends/%@?fields=installed",fbuserId]
它给了我错误代码5
当我使用@“我/朋友”
它返回结果
我还尝试使用graph api explorer,它提供未知路径
我的应用程序还具有用户\好友权限
有人能告诉我正确的路径吗?正如@CBroe已经指出的那样,您使用了错误的端点语法,这一点在文档中也很清楚 你需要使用
/{user-id}.context/mutual_friends
{user id}
是您感兴趣的用户,“其他”用户是用于请求的访问令牌的用户。这只适用于已经是您应用程序用户的用户。是的,我为您提供了非常简单的解决方案
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函数(添加#导入)
//SHA256 HASHMAC
-(NSString*)hmac:(NSString*)使用密钥访问令牌:(NSString*)应用程序密钥
{
const char*cKey=[app_secret cStringUsingEncoding:NSASCIIStringEncoding];
const char*cData=[access\u令牌cStringUsingEncoding:NSASCIIStringEncoding];
无符号字符cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256、cKey、strlen(cKey)、cData、strlen(cData)、cHMAC);
NSData*HMACData=[NSData dataWithBytes:cHMAC长度:sizeof(cHMAC)];
常量无符号字符*缓冲区=(常量无符号字符*)[HMACData字节];
NSMutableString*HMAC=[NSMutableString stringWithCapacity:HMACData.length*2];
对于(int i=0;i
@CBroe你能修改我的链接吗?我不知道如何放置上下文me/mutual_friends/%@?fields=installed“将此与/me
一起使用没有多大意义-你想在你当前的应用程序用户和另一个用户之间找到共同的朋友,对吗?然后你需要使用(应用程序范围)另一个用户的用户id。@CBroe我也在尝试,但没有结果[NSString stringWithFormat:@“%@/mutual_friends/%@?fields=installed”,MyFbId,fbuserId]不会发明您自己的“语法”,但请按照文档中给出的方法进行操作。您是指像这样的/1310347645.72439967/mutual_friends我使用它并给我未知路径组件。如果您给我一个示例,我将非常感激。我描述了所有内容。这有多困难?为什么要删除必需的部分?我很抱歉,我是ios a的初学者使用FaceBook SDK我使用你看到的东西,但它给了我未知路径组件。你能举个例子吗?我完全按照你说的做,但它给了未知路径components@CBroe如果你不相信我,你可以试试这个链接吗
//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;
}