我正在尝试创建一个可以在我自己的时间轴上执行某项操作的Facebook应用程序。我无法理解facebook自己的手册,所以我不确定那里有什么工作,所以我希望有人能在这里澄清一些事情。我不希望任何人安装该应用程序或以某种方式滥用它以我的名字在我的时间轴上发布内容。如果可能,我应采取哪些措施来防止这些事情发生?
答案 0 :(得分:0)
除了您学到的知识外,您还可以使用php-sdk进行身份验证,然后检查访问者用户ID。
“我将在代码中进行编辑,因为我们会发现您要完成的任务,明智的行动。”
// 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.
}
当你卷曲'我'时,它确保它是当前的会话用户,然后当你将它与你的实际用户ID进行比较时,你可以选择“可以说”只有你能看到和使用的内容。 只有创建门才需要连接到我,你可以在知道它正在进行之后进行所有其他卷曲调用。
http://anotherfeed.com/curl.api.php?objid=me
这是一个例子,当我卷曲我时,它会查找已登录的用户,如果有一个访问令牌,对于此示例我将其排除,它将返回一个包含我的“我”的数组“信息包括我的身份证明。
硬编码我将使用$me=$curlresults[id]
,这是会话调用返回的用户ID。
直接登机
$me=$curlresults[id]
if($me==='myfacebookuserid'){
// do my other curl calls here, i know only i can see this.
}
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.
}