我正在尝试制作一个可以在我自己的时间轴上执行某些操作的 facebook 应用程序。我无法理解facebook自己的手册,所以我不太确定那里的工作方式,所以我希望有人能在这里澄清一下。我不希望任何人安装该应用程序或以某种方式滥用它以我的名义在我的时间轴上发布内容。如果可能的话,我应该采取什么措施来防止这些事情发生?
问问题
64 次
1 回答
0
除了您所学的之外,您还可以使用 php-sdk 进行身份验证,然后检查访问者用户 ID。
“当我们发现您正在尝试完成的事情时,我将在代码中进行编辑,明智地采取行动。”
php SDK 示例。
// 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 调用。
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 示例。
- 从下面的令牌工具获取您的应用程序的用户访问令牌,将其存储在安全的地方,以便您可以通过 url 参数或会话参数传递它...... https://developers.facebook.com/tools/access_token/
- 在上面写着 myfacebookuserid 的地方添加您的 facebook 用户 ID
- 为了确保这一点,您需要使用 post、get 或 session 传递访问令牌。
- 对于这个例子,我们将使用 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 回答