如何为我的自定义Open Graph故事选择哪个灵活的句子结构?

时间:2014-02-21 02:13:05

标签: ios facebook facebook-graph-api facebook-opengraph

我已经按照教程使用Facebook SDK for iOS发布自定义Open Graph故事:https://developers.facebook.com/docs/ios/open-graph/

我还在这里阅读了有关灵活句子结构的文档:https://developers.facebook.com/docs/opengraph/creating-custom-stories/#variations

我的问题是,我在代码中如何以及在何处指定使用哪种特定的句子结构?我想张贴“John Doe煮牛排”而不是“John Doe煮了一顿饭”。我想使用一对一句子结构而不是一对一无对象标题结构。

// Create an object
id<FBGraphObject> object =
[FBGraphObject openGraphObjectForPostWithType:@"myapp:meal"
                                        title:@"Steak"
                                        image:@"http://i.imgur.com/g3Qc1HN.png"
                                          url:@"https://example.com/link/"
                                  description:@"Juicy and medium-rare"];

// Create an action
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];

// Link the object to the action
[action setObject:object forKey:@"meal"];

// Check if the Facebook app is installed and we can present the share dialog
FBOpenGraphActionShareDialogParams *params = [[FBOpenGraphActionShareDialogParams alloc] init];
params.action = action;
params.actionType = @"myapp:cook";

// If the Facebook app is installed and we can present the share dialog
if([FBDialogs canPresentShareDialogWithOpenGraphActionParams:params])
{
    // Show the share dialog
    [FBDialogs presentShareDialogWithOpenGraphAction:action
                                          actionType:@"myapp:cook"
                                 previewPropertyName:@"recipe"
                                             handler:
     ^(FBAppCall *call, NSDictionary *results, NSError *error)
    {
        if(error) {
            // There was an error
            NSLog(@"Error publishing story: %@", error.description);
        } else {
            // Success
            NSLog(@"result %@", results);
        }
    }];
}

1 个答案:

答案 0 :(得分:1)

我试图弄明白这一点,这就是我到目前为止理解的原因:

  • 默认情况下,所有帖子都按过去时发布。 &#34;用户名吃披萨&#34;
  • 如果您想使用现在时,您必须设置&#34; end_time&#34;属性如下:

    [action setEnd_time:@&#34; 2014-03-08T23:23:23&#34;]; //未来的日期

    这将在用户的时间轴上显示,例如&#34;用户名正在吃披萨&#34;并且这将继续显示,直到end_time指定的日期到来。 我认为我目前遇到的时区可能存在问题,因此如果您需要处理不同的时区,请务必小心。

  • 根据文件,&#34; expires_in&#34;属性是&#34; end_time&#34;的快捷方式。但是不是使用datime对象,你可以使用秒三角形,类似于&#34;这是现在时态,直到它已经发布了500秒,但是我还没有能够完成这项工作(帖子总是显示为过去时)

    [action setExpires_time:@&#34; 500&#34;];

  • 所有其他灵活的句子结构都由Facebook管理,您无法控制何时展示它们。例如,如果您的应用的两个用户共享其中的内容,它将在朋友的时间轴上显示类似于&#34; user1和user2正在吃披萨&#34;。

如果您发现其他内容,请更新您的帖子