dongqiao6445 2017-04-20 11:53
浏览 23

主题搜索使用Facebook API无法正常工作

I am following this tutorial(https://developers.facebook.com/docs/mediasolutions/topic_search/v2.9) to find related topics of a search query using php, ajax and facebook graph api. Though I am generating app access token for each login attempt, i am keep getting this error: "(#15) This method must be called with an app access_token."

Mycode is following:

index.php

<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js"></script>
  <script src="js/jquery.js"></script>
</head>

<body>
<fb:login-button autologoutlink="true" onlogin="OnRequestPermission();">
</fb:login-button>
<script language="javascript" type="text/javascript">
    FB.init({
        appId: '1619055624801235',
        status: true, 
        cookie: true, 
        xfbml: true,
         version : 'v2.2'
    });    
</script>
<!-- <button name="my_full_name" onclick="ShowMyName()" value="My Name" /> -->
<script language="javascript" type="text/javascript">
// function ShowMyName() {
        // FB.api("/me",
                // function (response) {
                    // alert('Name is ' + response.name);
                // });

    // }

</script>
<input type = "text" id = "searchQuery" name="searchQuery" placeholder = "Search for posts"></input>
<button name="showPosts" onclick="ShowPosts()" >Show Posts</button>
<script language="javascript" type="text/javascript">
function ShowPosts(){
    var query = document.getElementById("searchQuery").value;
    var accessToken;
    //alert(query);
    FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
    $.ajax({url:"js-login.php",
    type: "get",
    success:function(response){
        accessToken = response;
        fbDataCollect(accessToken);
    }});
  }
});

}

function fbDataCollect(accessToken){
    FB.api(
    "/search",
    {
        "type": "topic",
        "q": searchQuery,
        "fields": "id,name,page",
        "access_token": accessToken
    },
    function (response) {
     console.log(accessToken);
      console.log(response);
      if (response && !response.error) {
        /* handle the result */
            alert(response);
      } 

    }
);


}
</script>

<div id="fb-root"></div>
</body>


</html>

js-login.php

    <?php
include 'php-graph-sdk-5.0.0/src/Facebook//autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => '1619055624801235',
  'app_secret' => '6a4fed7bfe0321bb21ad68afcbe2f640',
  'default_graph_version' => 'v2.2',
  ]);

$helper = $fb->getJavaScriptHelper();

try {
  $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
      echo 'Graph returned an error: ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

if (! isset($accessToken)) {
  echo 'No cookie set or no OAuth data could be obtained from cookie.';
  exit;
}

// Logged in
//echo '<h3>Access Token</h3>';
//var_dump($accessToken->getValue());

$_SESSION['fb_access_token'] = (string) $accessToken;
echo $_SESSION['fb_access_token'];
?>  

Please help. Thanks in advance.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 cad图纸,chx-3六轴码垛机器人
    • ¥15 移动摄像头专网需要解vlan
    • ¥15 对于这个问题的算法代码
    • ¥20 access多表提取相同字段数据并合并
    • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
    • ¥20 Java-Oj-桌布的计算
    • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
    • ¥20 有人知道这种图怎么画吗?
    • ¥15 pyqt6如何引用qrc文件加载里面的的资源
    • ¥15 安卓JNI项目使用lua上的问题