如何使用php中的facebook用户名在facebook中自动发布

时间:2013-11-18 09:17:48

标签: php facebook

我是Facebook新帖的新手。

我使用的代码就像使用facebook id一样,但现在我使用facebook用户名做了同样的事情。

我可以得到任何建议。

提前致谢。

2 个答案:

答案 0 :(得分:0)

请下载facebook下面的sdk文件是链接 https://github.com/facebook/php-sdk

<?php
  // Remember to copy files from the SDK's src/ directory to a
  // directory in your application on the server, such as php-sdk/
  require_once('php-sdk/facebook.php');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?php
    if($user_id) {

      // We have a user ID, so probably a logged in user.
      // If not, we'll get an exception, which we handle below.
      try {
        $ret_obj = $facebook->api('/me/feed', 'POST',
                                    array(
                                      'link' => 'www.example.com',
                                      'message' => 'Posting with the PHP SDK!'
                                 ));
        echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';

        // Give the user a logout link 
        echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
      } catch(FacebookApiException $e) {
        // If the user is logged out, you can have a 
        // user ID even though the access token is invalid.
        // In this case, we'll get an exception, so we'll
        // just ask the user to login again here.
        $login_url = $facebook->getLoginUrl( array(
                       'scope' => 'publish_stream'
                       )); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {

      // No user, so print a link for the user to login
      // To post to a user's wall, we need publish_stream permission
      // We'll use the current URL as the redirect_uri, so we don't
      // need to specify it here.
      $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
      echo 'Please <a href="' . $login_url . '">login.</a>';

    } 

  ?>      

  </body> 
</html>  

以上代码是使用图谱API发布链接

答案 1 :(得分:0)

Facebook用户名是唯一的。它们在您的个人资料的网址中使用,因此您可以放心,不会有重复的用户名。

因此,Facebook user_id和username参数大多可以互换。无论你在哪里使用,你都可以使用另一个。

例如,要获取Mark Zuckerberg的个人资料信息,我可以查询此网址:

https://graph.facebook.com/4

那会给我这个:

{
  id: "4",
  name: "Mark Zuckerberg",
  first_name: "Mark",
  last_name: "Zuckerberg",
  link: "http://www.facebook.com/zuck",
  username: "zuck",
  gender: "male",
  locale: "en_US"
}

是的,Mark的用户ID是4!

现在,让我们只尝试相同的事情,而不是他的用户ID,我们将提供他的用户名:

https://graph.facebook.com/zuck

您可以看到这会返回相同的结果。