0

第一:请原谅我-我有点像新手...

我有一个工作测试站点,它正在运行 php facebook SDK 以成功执行一些简单的 graphAPI 请求。即读取用户所属的组的提要,并对其进行处理并将其显示回网页上。

这一切都很好,我遇到的问题是尝试通过 php curl POST 执行相同的请求到另一个网页(在同一个域上)。当发布请求形成时,SDK似乎没有将预期的会话带到另一个页面(参见代码中的“AUTH ERROR2”)......当通过“require_once”包含以下文件时,这工作正常,但不是当卷曲制作完成。

我宁愿做一个“卷曲”,因为我发现当“require_once”是从不同目录级别的页面完成时,我得到页面的 php 错误没有找到 - 这是预期的。

我可能只是错误地解决了这个问题......可能有一种更简单的方法来确保何时包含文件,它们正确的直接级别保持不变,或者可能有一种方法可以通过当前授权的 facebook sdk 会话发送卷曲的帖子。所有这些我都试图无济于事,我非常感谢任何帮助或建议。

感谢您的时间。

//readGroupPosts.inc.php
function readGroupPosts($postVars)

{
 //$access_token = $postVars[0]; 
 // ^-- I'm presuming I need this? I have been experimenting appending it to 
 //     the graphAPI request to no success...
 $groupID = $postVars[1];
 $limit = $postVars[2];

 require_once("authFb.inc.php"); //link to the facebookSDK & other stuff

  if ($user) {
   try {
     $groupFeed = $facebook->api("/$groupID/feed?limit=$limit"); //limit=0 returns all; 
     $groupFeed = $groupFeed['data']; //removes first tier of array for simpler access


     $postArray;
     for($i=0; $i<count($groupFeed); $i++)
      {
       $postArray[$i] = array($groupFeed[$i]['from']['name'], $groupFeed[$i]['message'], $groupFeed[$i]['updated_time'], count($groupFeed[$i]['likes']['data']));
      }

     return $postArray;
   } catch (FacebookApiException $e) {
     error_log($e);
     $user = null;
     return "AUTH ERROR1"; //for testing..
   }  
  }
 else
  {
     return "AUTH ERROR2"; //no user is authenticated i.e. $user == null..
  } 
}
4

1 回答 1

2

我宁愿做一个“卷曲”,因为我发现当“require_once”是从不同目录级别的页面完成时,我得到的页面没有找到的 php 错误 - 这是预期的。

我可能只是错误地解决了这个问题......

肯定的。

仅仅因为您无法找到绕过服务器文件系统的方法而使用 cURL 作为“解决方法”是一个离谱的想法。不要这样做。甚至停止思考它。现在。

可能有一种更简单的方法来确保文件被包含时,它们的正确直接级别保持不变

是的——例如,使用绝对路径而不是相对路径。用例如值作为前缀的路径$_SERVER['DOCUMENT_ROOT']- 这样,一旦你正确地给出了关于这个“基本路径”的路径,你需要文件的位置并不重要,因为绝对路径是相同不管你从哪里看。


(由于这根本不是与 Facebook 相关的问题,而只是涉及 PHP 和服务器端编程的基础知识,因此我将编辑标签。)

于 2012-10-24T21:09:19.193 回答