0

私は自分のタイムラインで何かをするFacebookアプリケーションを作ろうとしています。これについてはFacebookのマニュアルが理解できないので、そこでどのように機能するのかよくわかりません。誰かがここで物事を明確にしてくれることを願っています。誰かがそのアプリケーションをインストールしたり、何らかの形で悪用して私の名前でタイムラインに投稿したりしたくありません。可能であれば、これらのことを防ぐためにどのような手順を実行する必要がありますか?

4

1 に答える 1

0

まだ学んだことを超えて、php-sdkを使用して認証し、訪問者のユーザーIDを確認することができます。
「私は、あなたが達成しようとしていることを発見したときに、行動的にコードを編集します。」

phpsdkの例。

        // init php sdk here.  
        // check if we have a user
        // call api to get info about use
$user_profile = $facebook->api('/me');  

        // if we have a user, we can use that user id as a wrapper to filter content. 

if($user_profile[id]==='000000000'){ 
        // 000000000 is your facebook id for this example.
        // i am logged in, and only i can see this.
        // get some info, make a few posts, add photos etc; here.    
}

cURLの例

'me'をカールすると、それが現在のセッションユーザーであることが保証され、それを実際のユーザーIDと比較すると、自分だけが表示および使用できる「いわば」コンテンツをゲートできます。me接続へのcURLは、ゲートを作成するためにのみ必要です。他のすべてのcurl呼び出しは、それを実行していることがわかった後で実行できます。

http://anotherfeed.com/curl.api.php?objid=me

これは例です。私がカールすると、ログインしているユーザーを探します。この例で除外したアクセストークンがある場合は、IDを含む「私」情報を含む配列を返します。

ハードコーディングされた私は$me=$curlresults[id]、セッション呼び出しによって返されたユーザーIDを使用します。

ゲートするために私は単に

$me=$curlresults[id]
if($me==='myfacebookuserid'){
// do my other curl calls here, i know only i can see this.
}

完全なcURLの例。

  1. 以下のトークンツールからアプリのユーザーアクセストークンを取得し、URLパラメータまたはセッションパラメータを介して渡すことができるように安全な場所に保存します。https://developers.facebook.com/tools/access_token/
  2. myfacebookuseridと表示されている場所にFacebookユーザーIDを追加します
  3. これを保護するには、post、get、またはsessionでアクセストークンを渡す必要があります。
  4. この例では、getメソッドを使用します。

yourpage.php?user_token=youruseraccesstokenこの例で渡される方法です。


$access_token = $_GET['user_token'];
$build = 'https://graph.facebook.com/me?'.$access_token.'';
function GetCH($url){
$ch=null;
if(!$ch){
$ch = curl_init();
}
curl_setopt($ch, CURLOPT_URL, "".$url."");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    
$return=curl_exec($ch);
 if(!curl_errno($ch)){
return $return;
 }else{
$fb_fail=curl_error($ch);
return $fb_fail;
}
curl_close($ch);
unset($ch);
};
$returned=GetCH($build);
$locs=json_decode($returned, true);
$meid=$locs[id];
if($meid==='myfacebookuserid'){
    // do my other curl calls here, i know only i can see this.
}
于 2013-03-26T20:55:46.237 に答える