Я работаю над игрой, в которой есть функция «играть со своими друзьями в Facebook» (она не использует Facebook Canvas). Настройка довольно стандартная. Я хочу отобразить список всех друзей пользователя Facebook, и если они также будут пользователями моего приложения, появится кнопка «Play», если нет, появится кнопка «Пригласить».Отправить заявку пользователю определенного пользователя с помощью SDK для Facebook
Чтобы получить список моих друзей Facebook, которые используют приложение, я делаю вызов
Request.newMyFriendsRequest
, а затем, чтобы получить список всех моих друзей, я сделайте еще один звонок /me/taggable_friends
.
С этой информацией я могу создать такой список. Проблема в том, что если я хочу отправить запрос приложения пользователю, мне нужен его идентификатор пользователя, но идентификатор, который возвращается /me/taggable_friends
, не является фактическим идентификатором Facebook этого пользователя, а уникальным идентификатором, связанным с моим приложением (как описано в документации), поэтому он не работает, если я хочу отправить приложение, используя его.
Чтобы пригласить друг, я использую следующий код:
Bundle params = new Bundle();
params.putString("title", "Invite Friend");
params.putString("message", "has invite has you to try out the game");
params.putString("to", id); // how do I get this id?
WebDialog requestsDialog = (new WebDialog.RequestsDialogBuilder(this,
Session.getActiveSession(), params)).setOnCompleteListener(new WebDialog.OnCompleteListener()
{
@Override
public void onComplete(Bundle values, FacebookException error) {
}
}).build();
requestsDialog.show();
Это кажется довольно стандартная установка, которую я видел во многих играх, так что я знаю, что это возможно. Любые идеи, что я делаю неправильно? Благодаря!
Да, мне пришлось реализовать Facebook Canvas, что позволяет моему приложению использовать API invitable_friends, который именно то, что я хотел. Просто не хотел делать это над холстом, так как мое приложение действительно не нуждается в нем. – Henrique