使用新的Facebook SDK 3.1和iOS 6有2個(實際上3)的方式來發布。如何指定應用程序名用戶使用後 - (通過應用程序名稱)使用SDK 3.1
(看來新趨勢是有更多的選擇,使之更簡單?)OMG!
這裏是一個:
SLComposeViewController *fbPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[fbPost addURL:[NSURL URLWithString:href]];
[self presentViewController:fbPost animated:YES completion:nil];
這是使用本地對話框的另一種方式:
[FBNativeDialogs presentShareDialogModallyFrom:self
initialText: nil
image: nil
url: [NSURL URLWithString:href]
handler:^(FBNativeDialogResult result, NSError *error) {
if (error) {
}
else
{
switch (result) {
case FBNativeDialogResultSucceeded:
break;
case FBNativeDialogResultCancelled:
break;
case FBNativeDialogResultError:
break;
}
}
}];
我們,開發商,認爲這很酷,因爲我們提供一個很好的功能給用戶,也因爲我們的應用名稱顯示在帖子中,可以對應用進行一些推廣。
有趣的是,最新的實現都不允許指定應用程序的名字被公佈,名稱顯示「經由」之後。
我試圖用藏漢SLRequest:
ACAccountStore *store = [[ACAccountStore alloc] init];
ACAccountType *fbType = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
(options)[@"ACFacebookAppIdKey"] = kFacebookAppID;
(options)[@"ACFacebookPermissionsKey"] = @[@"publish_stream"];
(options)[@"ACFacebookAudienceKey"] = ACFacebookAudienceFriends;
[store requestAccessToAccountsWithType:fbType options:options completion:^(BOOL granted, NSError *error) {
if(granted) {
// Get the list of Twitter accounts.
NSArray *fbAccounts = [store accountsWithAccountType:fbType];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
(params)[@"link"] = href;
// (params)[@"picture"] = picture;
// (params)[@"name"] = name;
(params)[@"actions"] = @"{\"name\": \"Go Gabi\", \"link\": \"http://www.gogogabi.com\"}";
//Set twitter API call
SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST
URL:[NSURL URLWithString:@"https://www.facebook.com/dialog/feed"] parameters:params];
//Set account
[postRequest setAccount: [fbAccounts lastObject]];
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if(error)
{
NSLog(@"%@", error.description);
}
else
{
NSLog(@"%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
}
}];
} else {
}
}];
可惜的是,分享這個名字也不是那麼微不足道了,我不知道爲什麼,誰正在設計新的實現...... 我希望得到一些幫助上那個,先謝謝了。
我儘量讓我的問題很有趣,因爲在如此平凡的主題洙無聊消磨時光......
THanks的小費,我只是發現它... – gabrielpalomino