我有一个应用程序,需要为用户的每个实例添加唯一设置,将其添加到页面中(将其添加为选项卡)。
我无法找到任何文档来执行此操作 - 有谁知道如何?或者,是否有人有一个示例可以关注或有学习的地方?
解
我在应用用户页面的选项卡上创建了一个部分,仅显示给管理员的页面。它链接到我的应用中将page_id
发送到我的页面的页面。这使我现在可以根据page_id
我发现Facebook有一个部分可以转到应用程序的设置页面(您可以通过开发人员应用程序在应用程序设置中设置),该页面也会发送page_id - 但它不会以加密的方式发送它,所以我用我的设置选项加密了page_id。
如果有人需要进一步解释,请随时给我发消息,我很乐意提供帮助。
答案 0 :(得分:2)
我很确定你要找的是“页面”实例。每个页面都有一个Facebook ID,就像每个用户一样。在大多数情况下,您可以在用户ID的任何位置使用页面ID。您要做的是捕获页面的ID,而不是将其添加到页面(管理员)的用户的ID。如果这个URL看到如何获取页面ID,几乎一直滚动到底部: http://developers.facebook.com/docs/guides/canvas/
基本上,附加参数包括调用“页面”,其中包含页面ID。使用它与页面交互并存储任何会话信息。
答案 1 :(得分:1)
您可以使用数据库来存储用户的每个实例的设置,并使用唯一的密钥(使用php的uniqid函数)。
应用程序可以根据用户的密钥检索设置。
答案 2 :(得分:1)
当用户通过访问其他页面中的标签访问您的应用时,您的应用会收到名为signed_request
的POST变种。
在PHP中,这个var可以通过以下方式解码:
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
$arr = parse_signed_request($_POST["signed_request"], "YOUR_APP_SECRET");
echo print_r($arr);
您可以使用$ arr [“page”] [“id”]来了解访问您应用的页面。
您可以在此处详细了解:
http://developers.facebook.com/blog/post/462/
http://developers.facebook.com/docs/authentication/signed_request/
希望它有所帮助!