使用Facebook PHP SDK使用Javascript SDK

使用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连接。

+0

好的谢谢你的回复。我确实考虑过这个,但是我希望它能够让页面不需要重新定向?像这样它的自动..可以这样自动? – JamesG 2012-03-07 21:24:00

+0

你的意思是同时做两件事?登录并获取信息? – 2012-03-08 14:45:25

+0

不......原来我发现了我想要的东西...基本上我希望它“AJAXified”,所以没有重新加载页面或切换页面。我在网上发现了一个完美的教程... [请点击此链接](请http://thinkdiff.net/facebook/new-javascript-sdk-oauth-2-0-based-fbconnect-tutorial/)让我知道你怎么看。 – JamesG 2012-03-08 16:15:06