2014-02-21 39 views
2

我按照有關發佈使用Facebook SDK爲iOS定製的Open Graph故事教程:https://developers.facebook.com/docs/ios/open-graph/如何選擇要爲我的自定義Open Graph故事發布的靈活句子結構?

我也讀到靈活的句子結構,這裏的文檔:https://developers.facebook.com/docs/opengraph/creating-custom-stories/#variations

我的問題是,如何以及在何處在代碼中指定要使用哪個特定的句子結構?我想發佈「John Doe煮熟牛排」而不是「John Doe煮熟飯」。我想使用One-to-One句子結構而不是一對一無對象標題結構。

// 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); 
     } 
    }]; 
} 
+0

看來@estemendoza是在正確的有一個非常有限的事情,你作爲一名開發人員可以做影響句子結構列表。在大多數情況下,Facebook會自行決定,例如,如果附加的預覽包含標題,則FB將顯示沒有標題結構的1比1。這是這樣的,它不會在相同的帖子內兩次顯示標題文本,靠近。 – weiy

回答

1

我試圖找出答案也和這裏的原因我至今明白:

  • 默認情況下,所有的帖子發佈在過去時。 「用戶名吃比薩餅」
  • 如果你想使用現在時態,你必須設置 「END_TIME」 屬性是這樣的:

    [動作setEnd_time:@ 「2014-03-08T23:23:23」] ; //未來的日期

    這將在用戶的時間線上看起來像「用戶正在吃披薩」,並將繼續顯示,直到由end_time指定的日期到達。 我認爲可能存在我目前遇到的時區問題,因此如果需要處理不同的時區,請小心。

  • 根據文檔,「expires_in」屬性是「end_time」的快捷方式,但不是使用datime對象,而是可以使用秒增量,例如「這是現在時態,直到500秒後纔過去發佈「,但我一直無法做到這一點(帖子總是顯示爲過去式)

    [action setExpires_time:@」500「];

  • 所有其他靈活的句子結構由Facebook管理,您無法控制何時顯示它們。例如,如果您的應用有兩個用戶共享內容,它會在朋友的時間線上顯示「user1和user2正在吃比薩餅」。

如果你發現了別的東西,請更新您的帖子