使用Open Graph使用类型为Profile的自定义属性在Facebook中发布故事仅适用于用户名ID而非ID

时间:2015-01-29 22:19:08

标签: ios facebook facebook-opengraph opengraph

我正在使用iOS facebook API发布故事。

故事(分享手镯)包含两个对象,正在共享的“手镯”和接收手镯的“接收者”(个人资料类型)。

发布时一切正常,没有收到任何错误,当我使用Graph API Explorer检查对象或操作时,我看到填充的属性。

问题:该故事仅显示使用Facebook NameID发布时类型为Profile的属性,并且在使用用户ID时未显示。

这是我对故事附件的定义:

Attachment in the Story

这是我发布动作的代码:(对象先前已发布)

[FBRequestConnection startForPostWithGraphPath:@"me/objects/com_movetoshare:bracelet" graphObject:(NSDictionary <FBOpenGraphObject> *)@{@"object":shareDict} completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    if(!error) {
        // get the object ID for the Open Graph object that is now stored in the Object API
        NSString *objectId = [result objectForKey:@"id"];
        DLog(@"FB : PostShare : object id: %@", objectId);

        //here we have an Object. Must create an Action with that object linked
        // create an Open Graph action
        NSMutableDictionary<FBOpenGraphAction> *action = (NSMutableDictionary<FBOpenGraphAction>*)[FBGraphObject graphObject];
        action[@"fb:explicitly_shared"] = @"true";
        action[@"message"] = status;
        action[@"bracelet"] = objectId;
        action[@"receiver"] = fbReceiverID;
        // create action referencing user owned object
        [FBRequestConnection startForPostWithGraphPath:@"me/com_movetoshare:share" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
            if(!error) {
                DLog(@"FB : PostShare : Action id: %@", [result objectForKey:@"id"]);
            } else {
                // An error occurred
                DLog(@"FB : PostShare : ERROR posting Action to Open Graph: %@", error);
            }
        }];

    } else {
        // An error occurred
        DLog(@"FB : PostShare : ERROR posting the Open Graph object to the Object API: %@", error);
    }
}];

当变量fbReceiver ID包含例如@“facesmo.depruebas”(我的测试用户)时,它可以工作并显示:

Correct post

但是当变量fbReceiver包含用户ID @“100002871792152”时,它会发布Ok,但是故事中没有显示配置文件数据。它显示:

Incorrect Post

该操作已根据需要定义属性接收器,因此我可以推断出数据是正确的。

任何人都知道为什么在使用ID而不是NameID时没有显示?

0 个答案:

没有答案