24

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

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

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

Как это сделать?

Спасибо.

+0

Проверить эту ссылку: HTTP: // StackOverflow.com/questions/14157784/can-we-invite-people-to-use-our-app-or-send-friend-request-from-the-app-through-face/16605625 # 16605625 – NeverHopeless

ответ

-2

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

9

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

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/

+0

спасибо очень полезно. Есть ли способ узнать код, что там, где приглашенные друзья? – xus

+3

@xus Не уверен, что вы имеете в виду? –

+0

Я имею в виду, как узнать код, где пользователи, которые пользователь выбрал для запроса, сохранить информацию в приложении – xus

6

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

}]; 
10

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

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

Просто добавьте шесть строку кода в метод действия кнопки, то остальное будет сделано в рамках IOS & FaceBook ВСТРОЕННЫЙ :)

+0

хороший, лучший ответ здесь :) – Yossi

+0

это, кажется, устарело из-за [docs] (https: //developers.facebook .com/docs/reference/ios/3.9/class/FBWebDialogs /) –

1

Убедитесь, что ваш 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); 
        } 
     }}]; 
-2
[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); 
      } 
     } 
    } 
}]; 
6

Facebook SDK 4.0 введен "App предлагает для прошивки". Проверьте это: https://developers.facebook.com/docs/app-invites/ios

+0

Любые идеи о том, как приглашать определенных друзей только с помощью App-Invites? – Sebyddd

+1

@Marcio Klepacz: Я следую ссылке, которую я сделал в приложении, она показывает приглашение bt, не получил приглашение. Можете ли вы помочь мне? Я надеюсь, что проблема с созданием приложения не может найти его. – TamilKing

0

Чтобы отправить 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. Добавить FBSDKAppInviteDialogDelegate с классом ViewController.

    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); 
    
Смежные вопросы