使用Facebook PHP SDK使用Javascript SDK
问题描述:
我有以下代码:使用Facebook PHP SDK使用Javascript SDK
<?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 finction登录。
这是最好的方式去做到这一点?或者你是否通常会把这个POST封装到一个onClick函数或者其他东西中?
只是问,因为我认为我正在掌握整个事情,需要知道我是否正朝着正确的方向前进。
谢谢:)
答
线框我通常使用的是基于两页:
首页 - >页面的登录/启动/进入按钮。这个按钮应该触发JS SDK的登录,捕获auth事件并重定向到下一页。
Main - >此页面获取已由索引启动的会话,如果没有会话可用,它将重定向到索引。它使用会话来做任何应用程序需要做的facebook连接。
好的谢谢你的回复。我确实考虑过这个,但是我希望它能够让页面不需要重新定向?像这样它的自动..可以这样自动? – JamesG 2012-03-07 21:24:00
你的意思是同时做两件事?登录并获取信息? – 2012-03-08 14:45:25
不......原来我发现了我想要的东西...基本上我希望它“AJAXified”,所以没有重新加载页面或切换页面。我在网上发现了一个完美的教程... [请点击此链接](请http://thinkdiff.net/facebook/new-javascript-sdk-oauth-2-0-based-fbconnect-tutorial/)让我知道你怎么看。 – JamesG 2012-03-08 16:15:06