我不確定我理解你的問題,但看着你的兩個圖像,我得到的印象是,你試圖通過用戶設備上的Facebook應用發佈到用戶的牆上,而「Carousell」應用是以編程方式創建帖子。我不確定是否可以將Facebook應用程序設置爲包含有關稱爲帖子操作的應用程序的元數據,但我知道如何以編程方式進行操作。一種方法是創建一個「Story」帖子(我意識到這不是Carousell在這裏做的,只是以此爲例)。
要創建故事帖子,首先需要在開發人員門戶中設置故事。要做到這一點,請登錄您的Facebook Developer Portal並選擇您的應用程序。然後從左邊的菜單中選擇「Open Graph」。我不打算解釋如何從這裏創建一個真實的故事,因爲它非常簡單。完成故事創建後,點擊「獲取代碼」查看您需要的代碼片段。
下面是我的一個應用程序示例。在這種情況下,我正在執行imagePickerController:didFinishPickingMediaWithInfo:
委託方法中的所有內容。我創建一個對象,動作,以及隨後的故事,通過一個共享的對話框提示該用戶內容:
UIImage *image = info[UIImagePickerControllerOriginalImage];
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image;
photo.userGenerated = YES;
NSDictionary *properties = @{
@"og:type": @"appNamespace:objectTypeName",
@"og:title": @"Type Title",
@"og:description": @"Facebook story post!",
@"og:url": @"http://samples.ogp.me/bignumber",
@"og:image": @[photo]
};
FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties];
FBSDKShareOpenGraphAction *action = [[FBSDKShareOpenGraphAction alloc] init];
action.actionType = @"appNamespace:objectTypeName";
[action setObject:object forKey:@"objectTypeName"];
FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init];
content.action = action;
content.previewPropertyName = @"objectTypeName";
[FBSDKShareDialog showFromViewController:someViewController
withContent:content
delegate:self];
這種方法將創建一個「故事」的帖子這其中也包括您的應用程序名稱和鏈接到您的應用程序。我是 大部分代碼將在Facebook開發人員門戶網站上爲您自動生成,但您可以通過編程方式發佈到您的時間表,直到獲得您要查找的結果,然後使用默認代碼和實驗進行試用。除了您的應用測試人員之外,沒有人能夠看到這些帖子,直到您的故事得到批准,或者至少這是我迄今爲止的經歷。我希望這有助於回答你的問題。