0

最初に: 私を許してください。

簡単なgraphAPIリクエストを正常に実行するためにphp facebook SDKを実行している実際のテストサイトがあります。つまり、ユーザーがメンバーであるグループのフィードを読み取り、これを処理して Web ページに表示します。

これはすべて正常に機能します。私が遭遇した問題は、php curl POST を介して別の Web ページ (同じドメイン) に同じ要求を実行しようとしたときです。ポスト リクエストが形成されたときに、SDK が予想されるセッションを別のページに運ばないようです (コードの「AUTH ERROR2」を参照)。カールができています。

「require_once」が別のディレクトリレベルのページから実行されたときに見つけるので、「curl」を実行したいと思います。ページが見つからないという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」が別のディレクトリレベルのページから実行されたときに見つけるので、「curl」を実行したいと思います。ページが見つからないというphpエラーが発生します-これは予想されます。

私はこの問題にすべて間違って取り組んでいるだけかもしれません...

決定的に。

サーバーのファイル システムを回避する方法が見つからないという理由だけで cURL を「回避策」として使用するのは、とんでもない考えです。やらないでください。考えるのもやめましょう。今。

ファイルがいつインクルードされるかを確認する簡単な方法があるかもしれませんが、それらの正しい直接レベルはそのまま残ります

はい - たとえば、相対パスではなく絶対パスを使用する場合。たとえば、パスの前に の値を$_SERVER['DOCUMENT_ROOT']付けます。このように、この「ベース パス」に関して正しくパスを指定すると、絶対パスが同じであるため、どこからファイルを要求するかは問題になりません。どこから見ても。


(そして、これは Facebook 関連の問題ではなく、PHP とサーバー側プログラミングの基本に関するものなので、タグを編集します。)

于 2012-10-24T21:09:19.193 に答える