Intereting Posts
Codeigniter – добавление 2 файлов в электронную почту, которые были загружены из пользовательской формы на веб-сервер Войдите в файловую систему или базу данных? Создание многоуровневой структуры подпапок в PHP Запуск PHP: невозможно инициализировать модуль PHP Может static :: replace self ::? Мои сеансы php продолжают теряться после входа в систему загрузить файл изображения с помощью ajax и codeigniter всегда выдает ошибку upload_path Cake не может подключиться к базе данных Apostrophe CMS: Вопросы для хостинга + возможность без участия Symfony? Объединить два массива и упорядочить этот новый массив по дате OpenCart показать изображения категорий на главной странице? Ошибка не выводится в форме входа Песочница APNS Ошибка подключения «0» в php-файле? Контактная форма 7 сообщение в .asp Ошибка Mysqli: количество столбцов не соответствует количеству значений в строке 1

Как получить токен доступа пользователя?

Я пытаюсь получить доступ к счетам через API Facebook, чтобы получить список десятков моих друзей. Когда я пытаюсь получить доступ /[facebook id]/scores , я получаю следующую ошибку даже с токеном доступа к приложениям:

FacebookApiException [0]: для запроса этого ресурса требуется токен доступа пользователя. ~ APPPATH / classes / basefacebook.php [1039]

Как получить токен доступа пользователя?

Обновлено: после чтения http://developers.facebook.com/docs/reference/api/permissions/ , я подтвердил, что токен доступа к доступу и токен доступа пользователей – это два разных токена доступа. Вопрос все еще остается, как я могу получить токен доступа пользователя?

Related of "Как получить токен доступа пользователя?"

Я вижу, что вы используете php-sdk. Таким образом, вам нужен ваш друг, чтобы получить доступ к вашему приложению со сценарием, что-то вроде примера :

 <?php /** * Copyright 2011 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => '191149314281714', 'secret' => '73b67bf1c825fa47efae70a46c18906b', )); // Get User ID $user = $facebook->getUser(); // We may or may not have this data based on whether the user is logged in. // // If we have a $user id here, it means we know the user is logged into // Facebook, but we don't know if the access token is valid. An access // token is invalid if the user logged out of Facebook. if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; } } // Login or logout url will be needed depending on current user state. if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { $loginUrl = $facebook->getLoginUrl(array('scope'=>'offline_access')); } // This call will always work since we are fetching public data. $naitik = $facebook->api('/naitik'); ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>php-sdk</title> <style> body { font-family: 'Lucida Grande', Verdana, Arial, sans-serif; } h1 a { text-decoration: none; color: #3b5998; } h1 a:hover { text-decoration: underline; } </style> </head> <body> <h1>php-sdk</h1> <?php if ($user): ?> <a href="<?php echo $logoutUrl; ?>">Logout</a> <?php else: ?> <div> Login using OAuth 2.0 handled by the PHP SDK: <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> </div> <?php endif ?> <h3>PHP Session</h3> <pre><?php print_r($_SESSION); ?></pre> <?php if ($user): ?> <h3>You</h3> <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> <h3>Your User Object (/me)</h3> <pre><?php print_r($user_profile); ?></pre> <?php else: ?> <strong><em>You are not Connected.</em></strong> <?php endif ?> <h3>Public profile of Naitik</h3> <img src="https://graph.facebook.com/naitik/picture"> <?php echo $naitik['name']; ?> </body> </html> 

Затем вам необходимо:

  1. Предоставить разрешение offline_access
  2. Хранить возвращенный access_token
  3. Используйте этот токен, когда вы запрашиваете оценки своего друга $facebook->api('friend_id/scores?access_token=$stored_access_token');

Пожалуйста, обратитесь к документам, показывающим потоки аутентификации для Facebook.

http://developers.facebook.com/docs/authentication/

Это лучшее место, чтобы начать понимать, как это работает.

  1. Вы получаете разрешение пользователя и access_token
  2. Вы можете использовать этот access_token как «ключ», чтобы получать и публиковать информацию в Facebook

Функция access_token не должна ошибочно приниматься за секретный код приложения, который используется для авторизации подключения от имени зарегистрированного приложения.

В Flex вы можете использовать:

 FacebookDesktop.getSession().accessToken; 

Я вызываю эту функцию:

 FB.getLoginStatus(onFacebookInitialLoginStatus); 

Что вызывает функцию ниже и получает accesss_token из ответа.

 function onFacebookInitialLoginStatus(response) { if (response.status == "connected" && response.session) { var access_token = response.session.access_token; var url = 'https://graph.facebook.com/me/likes?access_token=' + access_token; } else { facebookLogin(); } } 

Подпишитесь на это событие:

 FB.Event.subscribe('auth.authResponseChange', function(response) { 

затем проверьте response.status