![](/img/trans.png)
[英]Posting a custom story to the graph API using Facebook iOS SDK 3.5
[英]Facebook iOS SDK - Post Custom Story
我正在嘗試做一些似乎比必要的困難大一個數量級的事情。
我有一個針對Parse后端編寫的iOS應用。 我們應用程序的用戶可以創建要存儲的項目,有時他們可以為這些項目生成警報。
我想向用戶發布一個簡單的提醒到Facebook。
我已經在Facebook網站上閱讀了很多有關將Facebook集成到iOS的信息,但是他們的文檔令人困惑,並且我在StackOverflow上看到不止一個人提到他們的iOS代碼至少有時存在缺陷。
基本上,自定義故事將包括以下各項:
我首先要承認我是一名出於工作目的而學習Facebook的開發人員,而我遠非Facebook的專家。
當我在Facebook應用程序中玩耍時,我可以添加狀態更新,其中包括:
但是,在Facebook SDK中,似乎只有以下兩個選項可用於發布狀態更新:
startForPostStatusUpdate:completionHandler:
startForPostStatusUpdate:place:tags:completionHandler:
如果我在那兒缺少什么,請告訴我。
其次,我試圖遵循Facebook的文檔和示例代碼來執行以下事件序列:
這是我從Facebook網站拼湊而成的代碼(評論大部分來自其他人的代碼,而不是我自己的代碼):
- (void)postToFacebookWithAlert:(PFObject *)alert image:(UIImage *)image {
// Stage the image
[FBRequestConnection startForUploadStagingResourceWithImage:image completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error != nil) {
// See: https://developers.facebook.com/docs/ios/errors
} else {
// Package image inside a dictionary, inside an array like we'll need it for the object
NSArray *image = @[@{@"url": [result objectForKey:@"uri"], @"user_generated" : @"true" }];
// Create an object
NSString *caption = // user-generate content
NSMutableDictionary<FBOpenGraphObject> *alert;
alert = [FBGraphObject openGraphObjectForPostWithType:@"<myapp>:alert"
title:caption
image:image
url:nil
description:alert[@"subtitle"]];
alert.provisionedForPost = YES;
// Post custom object
[FBRequestConnection startForPostOpenGraphObject:alert completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (error != nil) {
// An error occurred
} else {
NSMutableDictionary<FBGraphObject> *post = [FBGraphObject graphObject];
post[@"alert"] = result[@"id"];
[FBRequestConnection startForPostWithGraphPath:@"me/<myapp>:post" graphObject:post completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"startForPostWithGraphPath:graphObject:completionHandler:");
if (error != nil) {
// An error occurred
NSLog(@"Encountered an error posting to Open Graph: %@", error);
} else {
NSLog(@"OG story posted, story id: %@", result[@"id"]);
}
}];
}
}];
}
}];
}
我實際上已經使這段代碼可以工作一次。 我以自己的個人Facebook帳戶登錄。 如果我轉到活動日志,則可以看到要發布的項目。 如果我查看照片,可以看到我嘗試上傳的照片。 如果我從妻子的應用程序/帳戶查看我的個人資料,它不會顯示。
有人有可以執行我想要的工作代碼嗎?
也許您需要將“ fb:explicitly_shared”設置為“ true”,Facebook應該對此進行審查。
通過審核后,您可以添加如下所示的選項。
[post setObject:@"true" forKey:@"fb:explicitly_shared"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.