Получите друзей из Facebook и пригласите их в мое приложение для iOS

Я разрабатываю приложение для iOS, в котором я хочу получить своих друзей из Facebook и отправить его на сервер для проверки того, кто уже использует это приложение, используя свой адрес электронной почты или номер телефона. Как только у меня появятся друзья, которые не используют мое приложение, я покажу кнопку «Пригласить», чтобы отправить электронное письмо на их адрес электронной почты со ссылкой на магазин приложений для загрузки приложения.

Но согласно разрешениям facebook, мы не можем получить адрес электронной почты друзей из facebook. Кто-нибудь может знать, как я могу реализовать эту функцию другим способом? Любая помощь приветствуется. Спасибо.


person iOSAppDev    schedule 06.12.2012    source источник


Ответы (3)


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

person Kaushal Bisht    schedule 06.12.2012
comment
Спасибо за ответ... Но я не хочу писать на стене всех друзей. Я хочу опубликовать ссылку только для друзей, которые не используют мое приложение. - person iOSAppDev; 06.12.2012
comment
вы можете классифицировать своих друзей по зарегистрированным и незарегистрированным, а затем размещать сообщения только на стене незарегистрированных друзей - person Kaushal Bisht; 06.12.2012
comment
Как я могу классифицировать своих друзей? На каком основании, потому что я не могу получить их адрес электронной почты или номер телефона? - person iOSAppDev; 06.12.2012
comment
FbaccessToken генерируется для каждого уникального fbid при входе в любое приложение. Если кто-то из ваших друзей войдет в ваше приложение, он получит fbaccesstoken. Вы можете сохранить эти fbid и fbaccesstoken на свой сервер и проверить на этом основании, кто зарегистрирован, а кто нет. - person Kaushal Bisht; 06.12.2012
comment
Что делать, если пользователь отозвал приложение из своих настроек Facebook? - person iOSAppDev; 06.12.2012
comment
Я не уверен, но может быть, это также сделает их незарегистрированными... хотя не уверен :( - person Kaushal Bisht; 06.12.2012
comment
Можем ли мы получить список приложений пользователей с помощью facebook API или REST API, чтобы мы могли получить список приложений пользователей? Я говорю об этом facebook.com/appcenter/my - person iOSAppDev; 06.12.2012
comment
Никогда не использовал его .... Вы должны пойти и попробовать по этой ссылке developers.facebook.com/ios< /а> - person Kaushal Bisht; 06.12.2012
comment
Спасибо Каушал за информацию, которую вы дали. Я попробую вышеуказанные решения - person iOSAppDev; 06.12.2012

Вы можете взглянуть на мою эту тему.

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

Пригласительное сообщение может выглядеть так:

Я хотел бы, чтобы вы попробовали игру XYZ. Вот ссылка на это приложение в AppStore: Facebook iOS SDK - получить список друзей

person NeverHopeless    schedule 21.05.2013

Вы можете использовать FB Graph API (/me/invitable_friends), как показано ниже, для получения друзей вне приложения:

// m_invitableFriends - глобальный массив, в котором будет храниться список приглашенных друзей

- (void) getAllInvitableFriends
{
    NSMutableArray *tempFriendsList =  [[NSMutableArray alloc] init];
    NSDictionary *limitParam = [NSDictionary dictionaryWithObjectsAndKeys:@"100", @"limit", nil];
    [self getAllInvitableFriendsFromFB:limitParam addInList:tempFriendsList];
}

- (void) getAllInvitableFriendsFromFB:(NSDictionary*)parameters
                            addInList:(NSMutableArray *)tempFriendsList
{
    [FBRequestConnection startWithGraphPath:@"/me/invitable_friends"
                                 parameters:parameters
                                 HTTPMethod:@"GET"
                          completionHandler:^(
                                              FBRequestConnection *connection,
                                              id result,
                                              NSError *error
                                              ) {
                              NSLog(@"error=%@",error);

                              NSLog(@"result=%@",result);

                              NSArray *friendArray = [result objectForKey:@"data"];

                              [tempFriendsList addObjectsFromArray:friendArray];

                              NSDictionary *paging = [result objectForKey:@"paging"];
                              NSString *next = nil;
                              next = [paging objectForKey:@"next"];
                              if(next != nil)
                              {
                                  NSDictionary *cursor = [paging objectForKey:@"cursors"];
                                  NSString *after = [cursor objectForKey:@"after"];
                                  //NSString *before = [cursor objectForKey:@"before"];
                                  NSDictionary *limitParam = [NSDictionary dictionaryWithObjectsAndKeys:
                                                              @"100", @"limit", after, @"after"
                                                              , nil
                                                              ];
                                  [self getAllInvitableFriendsFromFB:limitParam addInList:tempFriendsList];
                              }
                              else
                              {
                                  [self replaceGlobalListWithRecentData:tempFriendsList];
                              }
                          }];
}

- (void) replaceGlobalListWithRecentData:(NSMutableArray *)tempFriendsList
{
    // replace global from received list
    [m_invitableFriends removeAllObjects];
    [m_invitableFriends addObjectsFromArray:tempFriendsList];
    //NSLog(@"friendsList = %d", [m_invitableFriends count]);
    [tempFriendsList release];
}

Для приглашения друга не из приложения -

вы получите инвайт-токены со списком друзей, возвращенным API графика me/invitable_friends. Вы можете использовать эти токены приглашения с FBWebDialogs, чтобы отправить приглашение друзьям, как показано ниже.

- (void) openFacebookFeedDialogForFriend:(NSString *)userInviteTokens {

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   userInviteTokens, @"to",
                                   nil, @"object_id",
                                   @"send", @"action_type",
                                   actionLinksStr, @"actions",
                                   nil];

    [FBWebDialogs
     presentRequestsDialogModallyWithSession:nil
     message:@"Hi friend, I am playing game. Come and play this awesome game with me."
     title:nil
     parameters:params
     handler:^(
               FBWebDialogResult result,
               NSURL *url,
               NSError *error)
     {
         if (error) {
             // Error launching the dialog or sending the request.
             NSLog(@"Error sending request : %@", error.description);
         }
         else
         {
             if (result == FBWebDialogResultDialogNotCompleted)
             {
                 // User clicked the "x" icon
                 NSLog(@"User canceled request.");
                 NSLog(@"Friend post dialog not complete, error: %@", error.description);
             }
             else
             {
                 NSDictionary *resultParams = [g_mainApp->m_appDelegate parseURLParams:[url query]];

                 if (![resultParams valueForKey:@"request"])
                 {
                     // User clicked the Cancel button
                     NSLog(@"User canceled request.");
                 }
                 else
                 {
                     NSString *requestID = [resultParams valueForKey:@"request"];

                     // here you will get the fb id of the friend you invited,
                     // you can use this id to reward the sender when receiver accepts the request

                     NSLog(@"Feed post ID: %@", requestID);
                     NSLog(@"Friend post dialog complete: %@", url);
                 }
             }
         }
     }];
}
person Sanjay Mohnani    schedule 16.12.2014