Ошибка 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(). Вот почему мой код не имеет этого вызова.