Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取我和其他用户之间的Facebook好友_Ios_Facebook_Facebook Graph Api - Fatal编程技术网

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已经指出的那样,您使用了错误的端点语法,这一点在

我想在我的ios应用程序中获取Facebook共同好友

这是我试图通过这个链接找到共同的朋友

[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;
}