【问题标题】:How do I authorize the user in a facebook pages tab?如何在 facebook 页面选项卡中授权用户?
【发布时间】:2011-10-10 09:17:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: php javascript facebook


    【解决方案1】:

    为了知道用户是否已经验证了你的应用,解码 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,干杯。

    【讨论】:

    • 谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,...! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多