У меня были серьезные ошибки в реализации последних версий PHP SDK и OAuth2, поэтому я разбил их на использование предоставленного примера для демонстрации проблемы, с которой я сталкиваюсь.
Я использую этот код.Я получаю OAuthException «Активный токен доступа должен использоваться для запроса информации о текущем пользователе».Когда я нажимаю ссылку «Войти через Facebook», я продолжаю получать эту ошибку, и я не подключен.Обратите внимание, что обычно это работает, когда все файлы cookie и сеансы очищены, но через несколько часов, если я вернусь, он больше не работает.
Я был бы признателен за любую помощь с этим.
Также обратите внимание, что этого нет на странице холста.
<code><?php
ob_start();
/**
* 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_once('../facebook-php-sdk/facebook.php');
include('app3.conf.inc.php');
$facebook = new Facebook(array (
'appId' => $appConf['appID'],
'secret' => $appConf['appsecret'],
));
// 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?fields=permissions');
} 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();
}
// This call will always work since we are fetching public data.
try
{
$naitik = $facebook->api('/naitik');
}
catch (Exception $ex)
{
echo("Exception with api/naitik:\n<pre>");
var_dump($ex);
echo("
"); die ();}?>