我正在使用iOS facebook API发布故事。
故事(分享手镯)包含两个对象,正在共享的“手镯”和接收手镯的“接收者”(个人资料类型)。
发布时一切正常,没有收到任何错误,当我使用Graph API Explorer检查对象或操作时,我看到填充的属性。
问题:该故事仅显示使用Facebook NameID发布时类型为Profile的属性,并且在使用用户ID时未显示。
这是我对故事附件的定义:
这是我发布动作的代码:(对象先前已发布)
[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”(我的测试用户)时,它可以工作并显示:
但是当变量fbReceiver包含用户ID @“100002871792152”时,它会发布Ok,但是故事中没有显示配置文件数据。它显示:
该操作已根据需要定义属性接收器,因此我可以推断出数据是正确的。
任何人都知道为什么在使用ID而不是NameID时没有显示?