gpt4 book ai didi

php - 如何在 Facebook 页面选项卡中授权用户?

转载 作者:行者123 更新时间:2023-11-30 09:02:56 24 4
gpt4 key购买 nike

我在 Facebook 页面选项卡中授权用户时遇到问题。我在 PHP 和 Javascript 中尝试了很多不同的方法,基本上没有任何运气。

如果有人能为我解释一下并展示一些代码那就太好了!我正在考虑在 PHP 中进行授权,然后继续获取一些用户数据宽度的 Javascript。我还需要能够让用户同意权限。所以授权和权限的弹出窗口是我需要帮助的。

你怎么看?有没有更好的办法?如我所说,帮助编写一些代码会很棒!

最佳答案

为了知道用户是否已经验证了你的应用程序,解码 signed_request 并检查 oauth_token 是否通过:

<?php     
$secret='APP_SECRET';
$signed_request=($_REQUEST['signed_request']);
function parse_signed_request($signed_request, $secret) {
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);

if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;}

// check signature
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}

return $data;
}

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

$information=parse_signed_request($signed_request, $secret);
$oauth_token=$information["oauth_token"];
?>

然后,如果 $oauth_token 为空,则使用此脚本对用户进行身份验证:

 <?php 
$app_id = "APP_ID";
$canvas_page = "YOUR_TAB_URL";
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=ENTER WANTED PERMISSIONS HERE";

$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>");}
?>

在这些脚本中填写 APP_SECRET、APP_ID、YOUR_TAB_URL 和 WANTED PERMISSIONS,干杯。

关于php - 如何在 Facebook 页面选项卡中授权用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7710695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com