2011-07-15 13 views
1

私は私は現在、ユーザーのFacebookの壁にログインにメッセージを投稿することができます次のコードを持っている:このページへのアクセスを停止するには?

<?php 
    error_reporting(E_ALL | E_STRICT); 
    ini_set('display_errors', 1); 

    session_start(); 

    require("facebook.php"); 

    $facebook = new Facebook(array(
     'appId' => 'app_id_here', 
     'secret' => 'secret_here', 
     'cookie' => true 
    )); 

    $session = $facebook->getSession(); 

    if(!empty($session)) { 

     try { 

      $uid = $facebook->getUser(); 
      $user = $facebook->api('/me'); 

      $api_call = array( 
       'method' => 'users.hasAppPermission', 
       'uid' => $uid, 
       'ext_perm' => 'publish_stream' 
      ); 

      $can_post = $facebook->api($api_call); 

      if($can_post) { 

       $facebook->api('/'.$uid.'/feed', 'post', array('message' => 'post some message here')); 
       echo 'Posted! Then redirect to an appropriate page.'; 

      } else { 

       $url = $facebook->getLoginUrl(array( 
        'req_perms' => 'publish_stream' 
       )); 

       header("Location: {$url}"); 
       exit; 

      } 

     } catch (Exception $e) { 

      echo $e; 
      exit; 

     } 

    } else { 

     $url = $facebook->getLoginUrl(array( 
      'req_perms' => 'publish_stream' 
     )); 

     header("Location: {$url}"); 

    } 
?> 

を自分のサイト上の複数の場所でこのコードを使用する必要があり、常にメッセージを変更する必要があります投稿されています。だから、上記のコードにメッセージを送るためにURLクエリ文字列を使うべきだと思った。すなわち、

header( "Location:post_message.php?message ="。$ some_message_here);

しかし、これは、URLを把握する人は誰でもランダムなメッセージを投稿できるようになりますか?すなわち、ここで私は私が必要とするすべてのページで上記のコードを使用するにはどうすればよい

http://mysite.com/post_message.php?message=someメッセージは、メッセージが掲載されるために、文字列渡しますが、ランダムなメッセージを投稿するページに移動するユーザーを停止しますか?

答えて

7
  1. 、関数の中であなたがそれを使用したい
  2. をコードラップ
  3. Webルート外のファイルを入れincludeそれはと関数を呼び出します。
+0

私はそれを関数にラップし、 '/ var/functions/post_facebook_message.php'に入れました。それにアクセスしているファイルは '/ var/www/folder1/post_message.php'にあり、' post_facebook_message.php'を 'post_message.php'ファイルに含める方法がわかりません。私は 'include(" ../../functions/ post_facebook_message.php ")' – nami

+0

'include( '/ var/functions/post_facebook_message.php');' – Quentin

+0

を試してみました。それは絶対パスです。相対パスはどのように使用しますか? – nami

0

このシナリオでは、ログインしたユーザーはアプリケーションから壁にメッセージを投稿できます。メッセージがユーザー生成されていない場合、なぜそれが有限数のメッセージではないのかわかりません。

メッセージを定義し、そのメッセージに識別子を渡すことをお勧めします。メッセージが可変内容を持つことになっている場合は、それを渡すこともできます。固有の識別子トークンを含むすべての予期されたパラメータを持つメッセージオブジェクトを定義し、JSONはそれをエンコードしてget要求の唯一の変数として渡します。

関連する問題