Документация для publish_stream гласит: «Позволяет вашему приложению публиковать контент, комментарии и лайки в потоке пользователя и в потоках друзей пользователя. С этим разрешением вы можете публиковать контент в фиде пользователя в любое время, без требуется offline_access. "
Итак, рабочий процесс таков:
FB.login () с областью publish_stream примерно так:
FB.login(function (response) {
if (response.authResponse) {
FB.api('/me/permissions', function (permissions) {
if (permissions.data[0].publish_stream == 1) {
//user has now granted publish_stream to this application
}
});
}
}, { scope: 'publish_stream' });
Используйте C # Facebook SDK для публикации на стене друга этого пользователя с помощью токена доступа приложения.
var client = new FacebookClient(FacebookAppId, FacebookAppSecret);
// Build the wall post
dynamic parameters = new ExpandoObject();
parameters.message = facebookDeliveryQueueItem.MessageBody; // user message
// Post to the wall
client.Post(facebookRecipientId + "/feed", parameters);
Возвращает:
{"error":{"message":"(#200) The user hasn't authorized the application to perform this action","type":"OAuthException"}}
Тем не менее! Если я пытаюсь использовать этот код для публикации на МОЕЙ СОБСТВЕННОЙ стене, он работает просто отлично.
Если пользователь предоставит publish_stream моему приложению, я могу использовать токен доступа APPLICATION (вы можете получить GET для https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID_HERE&client_secret=APP_SECRET_HERE) для публикации на стене этого пользователя, но НЕ для друга этого пользователя. стена.
Так является ли часть документации Facebook и "потоки друзей пользователя" ложью или я делаю это неправильно? Там тонна дезинформации там.