簡體   English   中英

Facebook簽名請求中未包含Page-Tab App_Data

[英]Page-Tab App_Data not contained in Facebook Signed Request

我正在嘗試將單個變量傳遞給Facebook Page Application。 對話框網址如下所示:

$data = json_encode('{"pid":"'.$places_id.'"}');

https://www.facebook.com/dialog/pagetab?app_id=APP_ID&app_data=".$data."&next=REDIRECT_URI

該應用程序的安裝工作正常,但已簽名的request參數僅不包含app_data字段。

在“ Facebook頁面”選項卡上,我使用PHP檢索簽名的請求數據:

require 'facebook.php';
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$facebook = new Facebook(array(
    'appId' => $app_id,
    'secret' => $app_secret,
    'cookie' => true
));
$signed_request = $facebook->getSignedRequest();

當我在“ Facebook頁面”選項卡上打印簽名的請求數組時,我得到以下信息

Array ( 
[algorithm] => HMAC-SHA256 
[issued_at] => 1372693029 
[page] => Array ( [id] => ID [liked] => [admin] => 1 ) 
[user] => Array ( [country] => de [locale] => en_US [age] => Array ( [min] => 21 ) ) )

有任何想法嗎?

問題是對話框頁面不使用app_data參數。 您需要使用該參數和地址中的數據重定向回到應用程序。 因此,您需要將REDIRECT_URI更改為具有該自定義GET值的特定Facebook應用程序URL。

編輯

Facebook API中的getLoginUrl()方法有助於簡化操作。 請注意在返回URI中定義app_data數組的區域。

$canvas = "http://www.facebook.com/{PAGE_NAME}/app_{APP_ID}";
$url = $facebook->getLoginUrl(array(
    'canvas' => 1,
    'fbconnect' => 0,
    'display' => 'page',
    'req_perms' => '',
    'next' => $canvas."?app_data[]=share",
    'cancel_url' => $canvas
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM