我正在编写一个 iPhone 应用程序。
我想让用户选择邀请朋友开始通过 Facebook 使用我的应用程序。
更具体地说,我想展示一个对话框,让用户选择要邀请的特定朋友。
我怎样才能做到这一点?
谢谢。
我正在编写一个 iPhone 应用程序。
我想让用户选择邀请朋友开始通过 Facebook 使用我的应用程序。
更具体地说,我想展示一个对话框,让用户选择要邀请的特定朋友。
我怎样才能做到这一点?
谢谢。
很简单,你只需编写下面的代码来个性化消息,你也可以很容易地选择应该向谁发送请求的朋友,这是一种直接而强大的方法。
[FBWebDialogs
presentRequestsDialogModallyWithSession:nil
message:NSLocalizedString(@"FBinviteMessage", nil)
title:nil
parameters:nil
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {}
];
只需将这六行代码添加到您的 Button 操作方法中,其余的将由 IOS & FaceBook 内置框架完成 :)
你可以这样做:
Facebook* facebook =
[[Facebook alloc] initWithAppId:@"YOUR_FACEBOOK_APP_ID" andDelegate:self];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"My Title", @"title",
@"Come check out my app.", @"message",
@"FACEBOOK_USER_ID", @"to",
nil];
[facebook dialog:@"apprequests" andParams:params andDelegate:self];
您可以在此页面查看可能的参数列表(向下滚动):http: //developers.facebook.com/docs/reference/dialogs/requests/
Facebook SDK 4.0 引入了“iOS 应用邀请”。看看:https ://developers.facebook.com/docs/app-invites/ios
今天使用3.11 version
facebook SDK,您应该使用它来向特定朋友发送应用请求。
NSString *facebookID = @"YOUR_FRIEND_FACEBOOK_ID"
NSMutableDictionary* params =
[NSMutableDictionary dictionaryWithObject:facebookID forKey:@"to"];
NSString *message = @"SOME_MESSAGE";
NSString *title = @"TITLE";
FBSession *facebookSession = [PFFacebookUtils session]; //You may changed this if you are not using parse.com
[FBWebDialogs presentRequestsDialogModallyWithSession:facebookSession
message:message
title:title
parameters:params handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error)
{
}];
确保您的 facebook 应用程序 ID 在开发人员页面和 xcode 中的信息下相同,启用沙盒模式并且必须在开发人员页面中填写画布 url [在 facebook 类别的应用程序下]。
NSString *facebookID = @"Your friend facebook id";;
NSMutableDictionary* params =
[NSMutableDictionary dictionaryWithObject:facebookID forKey:@"to"];
NSString *message = @"SOME_MESSAGE";
NSString *title = @"TITLE";
[FBWebDialogs presentRequestsDialogModallyWithSession:nil
message:message
title:title
parameters:params handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error)
{
// Case A: Error launching the dialog or sending request.
NSLog(@"Error sending request.");
}
else
{
if (result == FBWebDialogResultDialogNotCompleted)
{
// Case B: User clicked the "x" icon
NSLog(@"User canceled request.");
}
else
{
NSLog(@"Request Sent. %@", params);
}
}}];
要发送 Facebook 应用邀请,您需要先在此处添加应用的详细信息。 https://developers.facebook.com/quickstarts/?platform=app-links-host
在 Swift 2.2、XCode 7.3 和 FBSDK 4.1 中
import FBSDKShareKit
import FBSDKCoreKit
import FBSDKLoginKit
FBSDKAppInviteDialogDelegate
使用您的 ViewController 类添加。
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: [NSObject : AnyObject]!) {
print("Initiation sent")
}
func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!) {
print("\(error)")
}
let content = FBSDKAppInviteContent();
content.appLinkURL = NSURL(string: "fb link that you get in above developers facebook url"); //"https:// fb.me/1775107252721102" in my case
FBSDKAppInviteDialog.showFromViewController(self, withContent: content, delegate: self);
[FBWebDialogs
presentRequestsDialogModallyWithSession:nil
message:@"YOUR_MESSAGE_HERE"
title:nil
parameters:nil
handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// Error launching the dialog or sending the request.
NSLog(@"Error sending request.");
} else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User clicked the "x" icon
NSLog(@"User canceled request.");
} else {
// Handle the send request callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"request"]) {
// User clicked the Cancel button
NSLog(@"User canceled request.");
} else {
// User clicked the Send button
NSString *requestID = [urlParams valueForKey:@"request"];
NSLog(@"Request ID: %@", requestID);
}
}
}
}];
您可以使用共享对话框共享链接以将应用程序下载到用户的墙上,或者编写自定义 UI 元素并使用 API 调用来构建您自己的共享模块。尝试使用 Facebook iOS SDK 来简化流程,否则您将有很多工作要做。