Приложение facebook не перезагружается после всплывающего запроса на получение разрешения - с использованием PHP SDK (v.3.1.1) - PullRequest
0 голосов
/ 19 декабря 2011

Мое старое приложение для Facebook требует обновления до последней версии php sdk, как было указано в другом вопросе.Моя следующая проблема - заставить его работать с последней версией php sdk 3.1.1

Я использую пример, который идет с последней версией php sdk т.е.with_js_sdk.php

Работает нормально до тех пор, пока вы не дадите разрешение на доступ к приложению, но вместо перезагрузки, когда пользователь переходит в приложение, он снова возвращает пользователя в систему.Как мне перенаправить пользователя на компонент приложения.Обратите внимание, у меня есть предупреждение, что он вызывает window.location.reload ();но он не показывает пользователя после того, как он добавил приложение

Код ниже:

<code><?php

require 'facebook.php';

$appCanvasPage = 'https://apps.facebook.com/myapp/';
$app_id = "";
$app_secret = "";


$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret
));

// See if there is a user from a cookie
$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'
';$ user = null;}} echo "user =". $ user. "\ n";?> window.fbAsyncInit = function () {FB.init ({appId: 'getAppID ()?> ', cookie: true, xfbml: true, oauth: true});FB.Event.subscribe ('auth.login', function (response) {alert (При перезагрузке); window.location.reload ();});FB.Event.subscribe ('auth.logout', function (response) {window.location.reload ();});};(function () {var e = document.createElement ('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; документ.getElementById ('fb-root'). appendChild (e);} ());

1 Ответ

1 голос
/ 19 декабря 2011

Я нашел простое решение без использования SDK, который был на Facebook.

ссылка: https://developers.facebook.com/docs/appsonfacebook/tutorial/

<?php 

     $app_id = "YOUR_APP_ID";

     $canvas_page = "YOUR_CANVAS_PAGE_URL";

     $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
            . $app_id . "&redirect_uri=" . urlencode($canvas_page);

     $signed_request = $_REQUEST["signed_request"];

     list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

     $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

     if (empty($data["user_id"])) {
            echo("<script> top.location.href='" . $auth_url . "'</script>");
     } else {
            echo ("Welcome User: " . $data["user_id"]);
     } 
?>

сделал трюк.

Дэвидк.

...