Подтвердить что ты не робот

Как пригласить друзей в мое приложение через facebook iOS SDK и Graph API

Я пишу приложение для iPhone.

Я хочу дать пользователю возможность приглашать друзей, чтобы начать использовать мое приложение через Facebook.

В частности, я хочу представить диалог, который позволит пользователю выбирать приглашенных друзей.

Как я могу это сделать?

Спасибо.

4b9b3361

Ответ 1

Просто вы можете просто написать приведенный ниже код для персонализированного сообщения, а также вы можете легко выбрать друга, которому должен быть отправлен запрос, это прямой и мощный метод.

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

Просто добавьте эту шестую строку кода в метод действия Button, а остальные будут выполняться с помощью инфраструктуры IOS и FaceBook Inbuilt:)

Ответ 2

Вы можете сделать что-то вроде этого:

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

Сегодня с 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)
 {

 }];

Ответ 5

Убедитесь, что ваш идентификатор приложения facebook одинаковый на странице разработчика и информация в xcode next, включите режим песочницы и должны заполнить 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);
                    }
        }}];

Ответ 6

Чтобы отправить приглашение на 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);
    

Ответ 7

Вы можете использовать диалог совместного доступа, чтобы поделиться ссылкой для загрузки приложения на стену пользователя или написать пользовательские элементы пользовательского интерфейса и использовать API-вызовы для создания собственного модуля обмена. Попытка использования Facebook iOS SDK для упрощения процесса или у вас будет много работы.

Ответ 8

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