Iphone 如何通过facebook iOS SDK和Graph API邀请朋友访问我的应用程序

Iphone 如何通过facebook iOS SDK和Graph API邀请朋友访问我的应用程序,iphone,objective-c,facebook,facebook-graph-api,facebook-ios-sdk,Iphone,Objective C,Facebook,Facebook Graph Api,Facebook Ios Sdk,我正在编写一个iPhone应用程序 我想让用户可以选择邀请朋友通过Facebook开始使用我的应用程序 更具体地说,我想展示一个对话框,让用户选择要邀请的特定朋友 我该怎么做 谢谢。您可以使用共享对话框共享链接,将应用下载到用户的墙上,也可以编写自定义UI元素并使用API调用构建自己的共享模块。尝试使用Facebook iOS SDK简化流程,否则您将有大量工作要做。您可以执行以下操作: Facebook* facebook = [[Facebook alloc] initWithApp

我正在编写一个iPhone应用程序

我想让用户可以选择邀请朋友通过Facebook开始使用我的应用程序

更具体地说,我想展示一个对话框,让用户选择要邀请的特定朋友

我该怎么做


谢谢。

您可以使用共享对话框共享链接,将应用下载到用户的墙上,也可以编写自定义UI元素并使用API调用构建自己的共享模块。尝试使用Facebook iOS SDK简化流程,否则您将有大量工作要做。

您可以执行以下操作:

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];

您可以在此页面上看到可能的参数列表(向下滚动):

今天,使用facebook SDK的
3.11版本,您应该使用它向特定朋友发送应用程序请求

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)
 {

 }];

这很简单,你只需为个性化信息编写下面的代码,你也可以轻松地选择朋友的请求发送对象,这是一种直截了当且功能强大的方法

 [FBWebDialogs
 presentRequestsDialogModallyWithSession:nil
 message:NSLocalizedString(@"FBinviteMessage", nil)
 title:nil
 parameters:nil
 handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {}
];

只需将这六行代码添加到您的按钮操作方法中,其余代码将由IOS和FaceBook内置框架完成:)

确保您的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 SDK 4.0推出了“iOS应用邀请”。
查看:

要发送facebook应用程序邀请,您需要首先在此处添加应用程序的详细信息

在Swift 2.2、XCode 7.3和FBSDK 4.1中

  • 导入FBSDKShareKit
    导入FBSDKCoreKit
    导入FBSDKLoginKit

  • 在ViewController类中添加
    FBSDKAppInviteDialogDelegate

    func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: [NSObject : AnyObject]!) {
        print("Initiation sent")
    
    }
    func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!) {
        print("\(error)")
    }
    

  • 谢谢,非常有用。有没有办法在代码上知道被邀请的朋友在哪里?我的意思是,我如何在代码上知道用户为请求选择的用户在哪里,以将信息保存在apphi中我使用的是3.1 facebook sdk。如何使用此框架自动向其他用户发送“尝试应用程序”的请求?现在不推荐使用此框架。他们建议您改用FBWebDialogs类。查看此链接:很好,这里的最佳答案:)此链接似乎已被弃用,因为此链接已弃用,最新版本的替代解决方案是什么?关于如何仅使用应用邀请邀请特定朋友有何想法?@Marcio Klepacz:我关注我在应用中完成的链接,它显示受邀请的bt未收到邀请。你能帮我吗?我希望在applink创建上有问题,但我找不到它。
    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);