Ошибка Facebook publish_actions в Titanium

Я пытаюсь использовать publish_actions в Titanium для моего приложения, но я получаю "sdk facebook error 5". Я видел, что Facebook недавно изменил это разрешение, и теперь вам нужно отправить приложение, снимок экрана и другие данные на утверждение. Существует некоторая документация для использования этого разрешения в качестве разработчиков, например атрибут scope, но я не нашел ни одного для Titanium. Я использую мою учетную запись Facebook, которая является администратором приложения.

Этот код в настоящее время не работает:

        fb.permissions = ['publish_actions'];  
        //I've also used fb.permissions = ['publish_stream'];  
        fb.authorize();

        // ...
        // ...

        // Now create the status message after you've confirmed that authorize() succeeded
        fb.requestWithGraphPath('me/feed', {message: "Trying out FB Graph API and it's fun!"}, 
                 "POST", function(e) {
            if (e.success) {
                alert("Success!  From FB: " + e.result);
            } else {
                if (e.error) {
                    alert(e.error);
                } else {
                    alert("Unkown result");
                }
            }
        });

Спасибо!

1 ответ

Вы создали приложение на сайте developers.facebook.com? Если нет, вам нужно сделать это, прежде чем вы сможете работать с Facebook.

Если вы это сделали, вот мой рабочий код аутентификации (я могу публиковать изображения, видео и обновления статуса в профилях и на всех страницах, которыми я управляю, и мое приложение все еще находится в процессе тестирования - я еще не прошел процесс одобрения Facebook).

facebook = require('facebook');
facebook.appid = 'xxxxxxxxxxxxxxxxx'; //app id you'll get from Facebook when you create an app
facebook.permissions =  ['publish_actions, manage_pages'];

 facebook.createLoginButton({
    style : facebook.BUTTON_STYLE_WIDE
});

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

var acc = fb.getAccessToken();
facebook.requestWithGraphPath('me/feed?access_token='+ acc, {message: data}, "POST", showRequestResult); 

Данные - это просто текст, который вы хотите опубликовать в своем обновлении статуса.

Если у вас есть еще кто-нибудь, кто тестирует приложение с вами, убедитесь, что вы добавили его в качестве тестера в настройках приложения Facebook, иначе они не смогут аутентифицироваться.

edit: должен был упомянуть, если вы используете createLoginButton(), он вызывает для вас authorize(). Вот почему мой код не имеет этого вызова.

Другие вопросы по тегам