php - 将 Facebook PHP SDK 与 Javascript SDK 结合使用

标签 php javascript facebook facebook-graph-api

我有以下代码:

    <?php if (!$user) { ?>
    <div class="fb-login-button" data-perms="email,user_birthday,publish_stream">Login with Facebook</div>
<?php } else { ?>

    Your user profile is
    <pre>
    <?php //print htmlspecialchars(print_r($user_profile, true)) ?>
    </pre>
    <?php echo $user_profile['name']; ?>

    <?php

    try{
        $data = array("message" => "Hello Woghfd!");
        $status = $facebook->api("/me/feed", "POST", $data); 
    }catch(FacebookApiException $e) {
        $login_url = $facebook->getLoginUrl( array(
                       'scope' => 'publish_stream'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
    }


    ?>
<?php } 

我同时使用 JS 和 PHP SDK 的... JS 使用户登录,并使用 PHP 获取他们的信息(目前处于实验阶段)。我的问题是我使用 PHP 将数据发布到用户的 FB 提要,如果用户未登录,它会一直抛出错误。

我已经通过使用 try catch 方案尝试将数据发送到 facebook 解决了这个问题,但是如果它失败了,它不会抛出错误,而是要求用户使用 PHP getLoginUrl 函数登录。

这是执行此操作的最佳方法吗?或者您通常会将此 POST 包装起来以在 onClick 函数或其他函数中提供功能?

只是问一下,因为我认为我正在掌握整个事情,需要知道我是否在朝着正确的方向前进。

谢谢:)

最佳答案

我通常使用的线框是基于两个页面:

索引 -> 带有登录/开始/转到按钮的页面。此按钮应触发 JS SDK 的登录,捕获 auth 事件,并重定向到下一个页面。

Main -> 此页面获取已由索引启动的 session ,如果没有 session 可用,它会重定向到索引。它使用 session 来执行应用程序需要对 Facebook 连接执行的任何操作。

关于php - 将 Facebook PHP SDK 与 Javascript SDK 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608855/

相关文章:

php - 你如何在 MySQL 中使用 Yii 存储过程

javascript - PhpStorm - JavaScript 函数参数 IDE 错误

javascript - 试图理解javascript事件循环: Why do effects occur simultaneously?

ios - 从 Facebook 请求用户信息和好友信息

javascript - 跨域 Cookie - 避免广告拦截?

php - WordPress-woocommerce : change "SKU" string inside single-product meta. php

php - 在准备查询时,检查 ($stmt = $mysqli->prepare($query)) 是否为假有多重要?

javascript - Owl Carousel 淡入淡出效果不起作用

android - 共享 Facebook 帖子中的应用程序名称需要导航到 Facebook 页面

php - Jquery文件上传插件: Dynamically change upload path?