2012-05-26 3 views
0

Я использую это послать приглашение от пользователя к своему другу с моим приложением, и просить разрешения публичных акций, когда они читают новости на мое приложение:Создание запроса facebook приложение вместе с разрешения

function xlfb_friendInvite() { 
    FB.ui({method: 'apprequests', 
     message: 'great app http://apps.facebook.com/xaluancom enjoin w me..', 
    }, 
    function(receiverUserIds) { 
     console.log("IDS : " + receiverUserIds.request_ids); 
    }); 
    //http://developers.facebook.com/docs/reference/dialogs/requests/ 
} 

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

ответ

0

Наконец-то я нашел простое решение. Перейдите к Settings > Auth Dialogue в моем центре приложения FaceBook, затем нажмите «edit these permissions», затем введите «public_stream, email».

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

Я также заметил, что «public_actions» в настоящее время не поддерживается в этой настройке. Возможно, команда Facebook забыла поставить для нее вариант.

В любом случае, public_actions покрыт public_stream, так что я совсем не смущен.

Благодарим вас за участие в команде Open Graph из FaceBook.

+1

'publish_actions' доступно для аутентифицированных рефералов - вам просто нужно записать его правильно ... – CBroe

0

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

Что вам нужно сделать, это проверить, проверена ли пользователь, приземляющаяся на вашем холсте, URL-адрес. Обычно запрашивать разрешения как часть процесса аутентификации, но это не требуется.

Вы можете проверить права доступа, как это -

FB.api('/me/permissions', function (response) { 
    console.log(response); 
}); 

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

FB.ui({ 
    method: 'permissions.request', 
    perms: 'user_likes', 
    display: 'popup' 
    },function(response) { 
     if (response && response.perms) { 
      alert('Permissions granted'); 
     } else if (!response.perms){ 
      alert('User did not authorize permission(s).'); 
     } 
}); 

Если вы хотите просто аутентифицировать пользователя и запросить разрешения как часть процесса входа в систему, вы можете использовать код, похожий на этот код -

FB.login(function(response) { 
    // handle the response 
}, {scope: 'email,user_likes'}); 
+0

спасибо. что на самом деле я делаю сейчас .. но есть немного времени, одно приглашение, одно разрешение .., и это может раздражать другого пользователя, который не пригласил, но уже разрешил приложение для другого разрешения, они могут этого не делать. Я думаю использовать: redirect_uri .. и перенаправить еще одного пользователя на страницу разрешения на холст facebook: facebook.com/dialog/permissions.request?app_id='+appID+'&display=page&next=http%3A%2F%2Fapps. facebook.com% 2Fxaluancom% 2F & response_type = code & perms = publish_actions & canvas = 1, но тест не работает .. я пропустил некоторые вещи? –

Смежные вопросы