我可以在用户在我的网站上发表评论时制作一个Facebook应用程序,它也会出现在他们的个人资料上(获得他们的批准)

时间:2014-06-17 13:30:16

标签: facebook

我计划将facebook评论设为更有吸引力的东西,经过一段时间的研究,我意识到我不能那样做,所以我想到另一个解决方案,我设计我的网站评论系统,当人们评论帖子时在我的网站上,它也出现在他们的个人资料上(当然他们的批准),谁能告诉我这个解决方案?我真的很感激,因为我不知道如何开始

1 个答案:

答案 0 :(得分:0)

您可以创建一个允许您代表用户发布的应用程序。

您需要从FB API开始。您要通过此尝试的唯一方法是通过反复试验。

这是你必须要做的,

在Facebook上注册您的应用并获取app id and secretHere

下载FB API Here

阅读FB API Here

建立登录,允许您的用户使用Facebook登录。

然后

请求代表用户发布所需的权限。

这是一个工作登录脚本,请求您需要的权限。

阅读每一行并更改需要更改的内容。添加缺少的文件。记下任何变量并弄清楚它们是什么或它们持有什么。

从FB API请求所需的文件和类时,请确保文件路径正确。

<?php

// include required classes from Facebook SDK
require_once( 'facebook/src/Facebook/FacebookHttpable.php' );
require_once( 'facebook/src/Facebook/FacebookCurl.php' );
require_once( 'facebook/src/Facebook/FacebookCurlHttpClient.php' );
require_once( 'facebook/src/Facebook/FacebookSession.php' );
require_once( 'facebook/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'facebook/src/Facebook/FacebookRequest.php' );
require_once( 'facebook/src/Facebook/FacebookResponse.php' );
require_once( 'facebook/src/Facebook/FacebookSDKException.php' );
require_once( 'facebook/src/Facebook/FacebookRequestException.php' );
require_once( 'facebook/src/Facebook/FacebookOtherException.php' );
require_once( 'facebook/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'facebook/src/Facebook/GraphObject.php' );
require_once( 'facebook/src/Facebook/GraphSessionInfo.php' );

// Called class with namespace
use Facebook\FacebookHttpable;
use Facebook\FacebookCurl;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;

// init app with app id and secret
FacebookSession::setDefaultApplication( 'app_id_here','secret_here' );

 // login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper( 'http://www.Your.URL.com' );


// see if a existing session exists
if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
  // create new session from saved access_token
  $session = new FacebookSession( $_SESSION['fb_token'] );

  // validate the access_token to make sure it's still valid
  try {
    if ( !$session->validate() ) {
      $session = null;
    }
  } catch ( Exception $e ) {
    // catch any exceptions
    $session = null;
  }

} else {
  // no session exists

  try {
    $session = $helper->getSessionFromRedirect();
  } catch( FacebookRequestException $ex ) {
    // When Facebook returns an error
    // handle this better in production code
    print_r( $ex );
  } catch( Exception $ex ) {
    // When validation fails or other local issues
    // handle this better in production code
    print_r( $ex );
  }

}

// see if we have a session
if ( isset( $session ) ) {

  // save the session
  $_SESSION['fb_token'] = $session->getToken();
  // create a session using saved token or the new one we generated at login
  $session = new FacebookSession( $session->getToken() );

  // graph api request for user data with response           
$graphObject = (new FacebookRequest( $session, 'GET', '/me?fields=id,first_name,last_name' ))->execute()->getGraphObject()->asArray();
}
?>


 <?php
// This is how users will login and logout
  if ( isset( $session ) ) {
  // print logout url using session and redirect_uri (logout.php page should destroy the session)
  echo '<dd><a href="' . $helper->getLogoutUrl( $session, 'http://www.YourSitePathTOLogout/fbLogout.php' ) . '"><span class="fui-facebook"> </span><span class="colorRed"> Logout</span>' . "&nbsp" .  $graphObject['first_name'] . "&nbsp" . $graphObject['last_name'] . '</a></dd>';

} else {
  // show login url
  echo '<dd><a href="' . $helper->getLoginUrl( array( 'publish_stream, addPermissionsLikeThis, AddMore, AddMore, orDelteThese, KeepFirstOne' ) ) . '"><span class="fui-facebook"> </span><span class="colorBlue"> Login With Facebook</a></dd>';
}
            ?>