我有以下代码:
<?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/