Опубликовать на стене someones с помощью API Facebook API

Можно ли написать приложение, которое отправляет сообщение на стене someones, и если этот пользователь не принял разрешение на это, ему будет предложено сделать это в данный момент?

вот мой код:

$attachment = array( 'access_token' => $access_token, 'message' => "$message", 'name' => "testName", 'description' => "Check Out new message", 'link' => '', 'picture' => "test message" ); try { $response = $facebook->api("/userId/feed/", 'POST', $attachment); } catch (FacebookApiException $e) { } 

Solutions Collecting From Web of "Опубликовать на стене someones с помощью API Facebook API"

Вот что я написал на эту тему некоторое время назад для целей документации. Надеюсь, это поможет вам:

Создание приложения с API-интерфейсом Facebook 27 января 2012 г.

Начало работы в Facebook Чтобы начать создавать приложение Facebook с помощью Graph API, вам сначала нужно зарегистрироваться в Facebook, прежде чем вы сможете начать кодирование на https://developers.facebook.com . После создания учетной записи или входа в существующую учетную запись вам нужно будет создать новое приложение (или правильно настроить приложение, если вы используете существующее приложение). Чтобы создать приложение Facebook, перейдите на страницу https://developers.facebook.com/apps и нажмите «Создать новое приложение» (или «Изменить приложение», если у вас уже есть один и хотите его настроить). На вкладке «Настройки»> «Основные» вам необходимо, по крайней мере, заполнить имя отображаемого имени приложения, контактную электронную почту и URL-адрес сайта. Из них URL-адрес сайта является самым важным и ДОЛЖЕН указать, где будет находиться ваше приложение (это всегда можно обновить позже, если вы еще не знаете). Затем перейдите на вкладку «Настройки»> «Автодиалог». Вы не обязаны заполнять все это, но это хорошая идея, так как это то, что пользователи увидят, когда они разрешают вашему приложению получать доступ к своей учетной записи. Сохраните все и вернитесь на https://developers.facebook.com/apps . Вы должны увидеть приложение, которое вы только что настроили на этой странице. Две вещи, которые вам нужно будет скопировать, чтобы перейти от этой точки, – это ключ App ID / API и приложение Secret. Теперь вы готовы приступить к созданию своего приложения.

Понимание потока Прежде чем начинать кодирование своего приложения, лучше всего понять поток аутентификации пользователя и установить приложение на свою учетную запись Facebook. Пока ваше приложение не будет установлено в учетной записи пользователя, и они предоставили явному разрешению приложения для публикации контента на свою учетную запись, вы ничего не сможете сделать. Хорошая новость заключается в том, что пользователю нужно только один раз аутентифицировать приложение (если они не удаляют его). Взгляните на диаграмму ниже, чтобы понять, как работает поток:

Аутентификация пользователя Чтобы инициировать процесс аутентификации, вам нужно будет создать ссылку, которая будет направлять пользователя в ваше приложение. Вот как вы построите свою ссылку: https://www.facebook.com/dialog/oauth?client_id=%5BYour API KEY] & redirect_url = [Служба, которая будет обрабатывать аутентификацию] & scope = [Разрешения, которые вам нужны] & display = touch – client_id: Это ваш ключ API, который вы получили от Facebook при создании своего приложения. – redirect_url: это служба, которая будет обрабатывать всю вашу аутентификацию. Он должен быть расположен на URL-адресе сайта, который вы настроили при настройке своего приложения в Facebook. Это URL-адрес должен оставаться постоянным в процессе аутентификации. – scope: Это любое разрешение, которое вам потребуется для учетной записи пользователя. Вы должны только спросить, что вам действительно нужно. Обычно нам нужен только publish_stream. Полный список разрешений см. На странице https://developers.facebook.com/docs/reference/api/permissions/ – display: Это то, что сообщает Facebook, какой скин использовать. Поскольку мы используем это для мобильных приложений, вы должны настроить это на «touch». Если вы не разрабатываете для мобильного устройства, вы можете опустить это все вместе.

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

Если пользователь нажимает «Разрешить», они будут отправлены на ваш redirect_url, а строка запроса будет содержать переменную с кодом. Это то, что вы будете использовать, чтобы получить токен аутентификации для пользователя, который позволит вам получить доступ к своей учетной записи из приложения. Если пользователь нажимает «Не разрешать», не может войти в систему или что-то еще не так, следующие строки запроса будут добавлены к вашему redirect_url: error_reason, error и error_description. Пример успешного запроса на переадресацию URL: = "> http://niobiumstudio.com/appia/fbconnect/auth.php?code=AQDi7fT3whSPJr0O2ECwv494QSSNyrTFK_SGIexEFUGmw5XS8SvzfYiAsxpn0FspQYHkMgaUYH–PS1AnJnCtE-iUdRl6V3Moxfk4Cqz0igZbnkHxWi4Yl_KphXiRkbnCCW_zDqb4W2lfew9sla4FPDUKhXscRuQeI–61uQ0uStb9GwrOH4V94DjGWk1yS-Ffs# =

После того, как переменная кода GET передана обратно на ваш redirect_url, вы сможете обменять ее на Facebook, чтобы получить токен доступа OAuth. Для этого вам нужно будет создать запрос в Facebook, используя код, который вы только что вернули. Вот как выглядит запрос на получение токена доступа: https://graph.facebook.com/oauth/access_token?client_id=%5BYour API Key] & redirect_url = [служба, которая обрабатывает аутентификацию] и client_secret = [ваш секрет приложения] и код = [User Acceptance Code] client_id: Это ваш API-ключ, который вы получили от Facebook при создании своего приложения. redirect_url: Это сервис, который будет обрабатывать всю вашу аутентификацию. Он должен быть расположен на URL-адресе сайта, который вы настроили при настройке своего приложения в Facebook. Это URL-адрес должен оставаться постоянным в процессе аутентификации. ЭТО ДОЛЖНО БЫТЬ ТАКОГО ИСПОЛЬЗУЕМОГО ТОГО, КОТОРЫЙ ВЫ ИСПОЛЬЗУЕТЕ ВЫШЕ КОДА client_secret: Это ваш секретный код приложения, который вы получили от Facebook при создании своего приложения. code: Это код, который вы вернули в строке запроса из предыдущего запроса.

Когда вы успешно сделаете этот запрос, вы получите OAuth Access Token, который позволит вам получить доступ к учетной записи пользователя Facebook. Это последний шаг к аутентификации. В отличие от «Кода», токен доступа будет находиться в теле ответа, а не как переменная GET. Вот как будет выглядеть успешный ответ: access_token = AAAB9BKw79ywBAPjNYxRwLhUE1mOgd3Ei1Nq2gPXxyWhiCISZAZA6ihZAor1NEPHRjuQ5x7NrkA7ITuV2IHVZBs6ZAaigbNdsMnX3l58RrQAZDZD & expires = 5862 Вам придется проанализировать токен доступа, и именно это вы будете использовать для доступа к учетной записи пользователя. Также обратите внимание, что есть значение expires, которое отправляется вместе с токеном доступа. Вы не сможете сохранить этот токен доступа и использовать его в любое время в любое время. Вы должны использовать это сразу, чтобы выполнить то, что вам нужно, а затем отбросить его. Если запрос на получение токена доступа завершится неудачно, вы получите сообщение об ошибке в теле, а не токен доступа и истечение срока действия. В отличие от токена доступа, он будет в формате JSON, поэтому имейте это в виду. * Для получения дополнительной информации о процессе проверки подлинности см .: https://developers.facebook.com/docs/authentication/

Публикация на учетную запись пользователя Теперь, когда у вас есть токен доступа, вы сможете получить доступ к учетной записи пользователя до истечения срока действия токена. Есть десятки вещей, которые могут быть сделаны с различными разрешениями, но поскольку мы только просили publish_stream, эта документация будет касаться только обновления сообщения о статусе пользователя. Чтобы обновить статус пользователя, нам нужно будет сделать запрос POST по следующему URL-адресу: https://graph.facebook.com/me/feed?access_token=%5BAccess Token] access_token: Это токен доступа, который вы получили от процесс аутентификации. POST должен содержать переменную, называемую сообщением. Переменная сообщения – это строка и все, на что она установлена, – это то, на что будет установлено сообщение состояния пользователя. Вот как выглядит запрос Hello World, если вы сделали запрос POST, используя cURL и PHP $ fb_post_url = " https://graph.facebook.com/me/feed?access_token= ". $ Access_token; $ message_text = "Hello World!";

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ fb_post_url); curl_setopt ($ ch, CURLOPT_POST, true); curl_setopt ($ ch, CURLOPT_POSTFIELDS, "message =". $ message_text); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ ch, CURLOPT_TIMEOUT, 30); $ fb_post_response = curl_exec ($ ch); curl_close ($ ch) Запрос POST вернет сообщение «Успех» или «Неудача» JSON в Body ответа.

Дополнительные сведения о публикации на учетную запись пользователя см. По адресу : http://developers.facebook.com/docs/reference/api/status/.

Аутентификация пользователей, которые уже приняли ваше приложение После того, как пользователь уже принял ваше приложение, им больше не будет предложено «Принять» ваше приложение, когда они нажмут на ссылку, поскольку она уже установлена. Процесс аутентификации остается тем же, за исключением случаев, когда они нажимают ссылку, которая переводит их на страницу аутентификации, Facebook определит, что приложение уже принято и просто перенаправляет пользователя на ваш redirect_url с кодом, добавленным в строку запроса. Пользователь должен будет войти в свою учетную запись Facebook, если они еще не вошли в систему, но им больше не придется «принимать» ваше приложение. Если вы измените свое приложение в будущем и добавите дополнительные разрешения, в следующий раз, когда они попытаются использовать ваше приложение, им будет предложено принять ТОЛЬКО НОВЫЕ разрешения.

Это можно сделать так же, как и в стене входа в систему: вместо использования конечной точки:

 https://graph.facebook.com/me/feed 

просто используйте:

 https://graph.facebook.com/[UserID]/feed 

корм

Это соединение соответствует стене пользователя. Вы можете создать сообщение ссылки, сообщения или статуса, отправив запрос HTTP POST в соединение PROFILE_ID / feed. Более подробную информацию см. В документации по ссылкам, сообщениям и статусу.

Цитата из подраздела «feed» ссылки API на объект пользователя .

Ответ: ДА и НЕТ ðŸ™‚ Вы не можете публиковать сообщения без разрешения, если можете, сообщить об ошибке. Это может быть сумасшедший мир, если я просто заметил, что кто-то другой напишет мне мою стену. НО есть один путь. Если вы напишете на стене человека от имени своего друга. Но в этом случае вам нужно получить разрешение от друга.

Вот какой код, который я использую для публикации на стене facebook, используя php curl:

 $username = "${string}"; $message = "${string}"; $access_token = "${string}"; $url=curl_init(); $attachment=array('access_token'=>$access_token, 'message'=>$message); curl_setopt($url, CURLOPT_URL, "https://graph.facebook.com/".$username."/feed"); curl_setopt($url, CURLOPT_POST, true); curl_setopt($url, CURLOPT_POSTFIELDS, $attachment); curl_setopt($url, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($url); 

Надеюсь, это поможет вам

В вашем коде у вас есть:

 $response = $facebook->api("/userId/feed/", 'POST', $attachment); 

Вам нужно только заменить это:

 $response = $facebook->api("/".$userId."/feed/", 'POST', $attachment); 

И используйте идентификатор пользователя, который вы хотите опубликовать.

document.write ( '');

{"error": {"message": "Активный токен доступа должен использоваться для запроса информации о текущем пользователе.", "type": "OAuthException", "code": 2500}