2016-08-08 5 views
0

Я разработал приложение для Facebook в тестовом модуле, и я хочу опубликовать его на стене тестового пользователя.Facebook: не удается опубликовать в пользовательском канале в тестовом режиме

это ссылка, где регистр пользователя и принять разрешение:

https://www.facebook.com/dialog/oauth?type=user_agent&client_id=MY_APP_ID&display=popup&redirect_uri=THE_URL&scope=email%2Cpublish_actions

После этого я получаю какое-то знак, используя этот маркер я делаю следующий запрос к графе :

/oauth/access_token?client_id=MY_APP_ID&client_secret=MY_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=".$token

маркер возвращается в настоящее время используется мной, чтобы получить подробную информацию пользователя из графика:

/me/?$user_access_token&fields=name,age_range,id,email,gender,currency,locale,timezone"

Я получаю в результате все поля, перечисленные выше. (одна странной вещи, идентификатор возвращается не является публичным идентификатором тестового пользователя, другое поле правильны ...)

, когда я хочу отправить так кому-то стену Я бег это ИНТ графика:

/oauth/access_token?client_id=MY_APP_ID&client_secret=MY_SECRET&grant_type=client_credentials

маркер возвращается будет использоваться здесь:

$token = self::getAccessToken($app_id,$app_secret); 
    $post_array = array(); 
    $post_array['access_token'] = $token; 
    $post_array['message'] = urlencode($message); 
    $post_array['link'] = urlencode($link); 
    $res = self::post("https://graph.facebook.com/".$user_id."/feed?",$post_array);// the user id might be wrong? 

, и я получаю следующее сообщение об ошибке: {"error":{"message":"(#200) Permissions error","type":"OAuthException","code":200,"fbtrace_id":"EO5WvMfYYgC"}}

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

Благодаря

+0

Какие разрешения предоставляет пользователю приложение? – WizKid

+0

@WizKid см. Первый URL-адрес, который я разместил здесь ('scope = email% 2Cpublish_actions') – SexyMF

+0

Этот URL-адрес означает, что вы _tried, чтобы спросить_ за разрешениями, а не то, что пользователь фактически предоставил их. Пользователь даже попросил разрешения на публикацию в диалоговом окне? Если у пользователя нет роли в приложении, вам, конечно же, необходимо сначала получить это разрешение. – CBroe

ответ

1

Идентификатор правильно, вы только получите "App контекстными ID". Вы больше не должны использовать глобальный/общедоступный идентификатор, и вы должны использовать /me/feed для публикации, а не /user-id/feed. В любом случае вы можете публиковать только на стене авторизованного пользователя.

+0

Спасибо, я знаю, что могу опубликовать только на моей авторизованной стене пользователей. но, где я скажу facebook, какой пользователь должен публиковать? «/ me/feed» не имеет указаний на пользователя, по какой-либо причине он также не упоминается в руководстве api. – SexyMF

+0

/me - текущий пользователь, в зависимости от токена доступа пользователя. просто используйте его. – luschn

+0

что не так: 'curl -X POST https: //graph.facebook.com/me/feed? Access_token = 944609325668755% 7Cf1lj14epP1Hgxj_OpyczE67-_RM & message = test + message & link = http% 3A% 2F% 2Fwww.site.com' I я получаю следующую ошибку из графика: «Активный токен доступа должен использоваться для запроса информации о текущем пользователе» – SexyMF