0

私は本当にこれについていくつかの助けが必要です..

私はここのようにしようとしていますFacebook PHP SDK $facebook->getSignedRequest() ユーザー ID と名前を取得します。(ページタブ) Facebookページにリンクされたアプリを作成する..これまでのところとても良い..問題は、何があっても、php-sdkを使用してユーザーIDを取得できないことです..

私はこの修正も試しましたhttps://www.webniraj.com/2012/12/19/facebook-php-sdk-fixing-getuser-on-php-5-4-x/しかし、それは何もしませんでした違い

require 'php-sdk/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId' => 'myappid',
  'secret' => 'mysecretid',
));

$theRequest = $facebook->getSignedRequest();
$user = $facebook->getUser();
var_dump($user);

何を試しても、ユーザーIDを取得できませんでした..

ポールが提案したリンクを試しました

次のコードで

if ($_REQUEST) {
  $signed_request = $_REQUEST['signed_request'];
} else {
  echo '$_REQUEST is empty';
}

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

  // decode the data
  $sig = base64_url_decode($encoded_sig);
  $data = json_decode(base64_url_decode($payload), true);

  return $data;
}

function base64_url_decode($input) {
  return base64_decode(strtr($input, '-_', '+/'));
}

$data = parse_signed_request($signed_request);
var_dump($data);

応答として「NULL」を受け取りました.. :S

2番目の編集..私はこのコードを手に入れました

$information=parse_signed_request($signed_request, $secret); $oauth_token=$情報["oauth_token"];

var_dump($情報); var_dump($oauth_token);

 $app_id = "myappid";
 $canvas_page = "https://apps.facebook.com/app_namespace";
 $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=read_stream, friends_likes";

 $signed_request = $_REQUEST["signed_request"];

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

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

 if (empty($oauth_token)) {echo("<script> top.location.href='" . $auth_url .    "'</script>");}

このようにして、認証ダイアログを取得することができましたが、リダイレクトでアプリの構成が間違っているというメッセージが表示されます..アプリに再入力すると、必要なすべての情報にアクセスします..トークンなど..解決策が見つかった場合リダイレクトでアプリの構成が間違っています。問題を解決したと思いますか?

4

2 に答える 2

0

まず第一に、signed_requestは、ユーザーがアプリにログインしていない限り、user_idandを提供しません。ロケール文字列、国文字列、および年齢オブジェクトを含む JSON オブジェクトであるキー内のユーザーに関する基本情報を提供するだけです。 . したがって、ログインを実装 したい場合、またはここでテストケースを取得したい場合は、次のことができますoauth_tokenuser
user_id

<?php
$params = array(
  'redirect_uri' => 'http://yourdomain.com/post_login_page'
);

$loginUrl = $facebook->getLoginUrl($params);
if(!$facebook->getUser()):
?>
<script>window.location.href = "<?php $loginUrl; ?>"</script>
<?php endif ?>
于 2013-05-01T07:43:06.913 に答える