web-dev-qa-db-ja.com

FacebookのiOS SDKとGraph APIを介してアプリケーションに友達を招待する方法

IPhoneアプリケーションを書いています。

Facebookを介してアプリケーションを使い始めるように友達を招待するオプションをユーザーに提供したい。

より具体的には、ユーザーが招待する特定の友達を選択できるダイアログを表示したいと思います。

これどうやってするの?

ありがとう。

24
zeevblu

パーソナライズされたメッセージ用に以下のコードを書くだけで簡単で、リクエストの送信先の友達を簡単に選択できます。これは簡単で強力な方法です。

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

この6行のコードをボタンアクションメソッドに追加するだけで、残りはIOS&FaceBook Inbuilt framework :)によって実行されます

10

あなたはこのようなことをすることができます:

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/

今日は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)
 {

 }];
6
ant_one

Facebook SDK 4.0は「iOS向けApp Invites」を導入しました。ご覧ください: https://developers.facebook.com/docs/app-invites/ios

6
Marcio Klepacz

FacebookアプリのIDが開発者ページとxcodeの情報の両方で同じであることを確認し、サンドボックスモードを有効にし、開発者ページの[Facebookカテゴリのアプリの下]のキャンバスURLに入力する必要があります。

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);
                    }
        }}];
1
Ramdhas

Facebookアプリの招待状を送信するには、まずアプリの詳細をここに追加する必要があります。 https://developers.facebook.com/quickstarts/?platform=app-links-Host

Swift 2.2、XCode 7.3およびFBSDK 4.1

  1. import FBSDKShareKitimport FBSDKCoreKitimport FBSDKLoginKit

  2. ViewControllerクラスにFBSDKAppInviteDialogDelegateを追加します。

    func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didCompleteWithResults results: [NSObject : AnyObject]!) {
        print("Initiation sent")
    
    }
    func appInviteDialog(appInviteDialog: FBSDKAppInviteDialog!, didFailWithError error: NSError!) {
        print("\(error)")
    }
    
  3.     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);
    
0
Deepak Thakur