1

ユーザーを、所有しているFacebookページに現在インストールしているページタブにリダイレクトしたいと思います。これを明確にするために、Facebookページタブのインストールプロセスについて話します。同じ方向にいくつかの質問を見つけましたが、これを行う正しい方法を見つけることができませんでした。これは、ページタブをインストールするための標準リンクです。

「https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL」

ユーザーがタブをインストールするページがわからないため、次のURLを正しく設定できません。これにより、これらの情報を取得しようとしているページにリダイレクトされます。ただし、署名されたリクエストまたはURLスキーマを介して彼が使用したページに関する情報を抽出することはできません。タブがインストールされたページのIDがURLに含まれている場合もありますが、これで終わりのようです。

"https:// url /?tabs_added%5B379396442071062%5D = 1#= "

編集:このURLには、配列エンコードとしてIDが含まれています。@ ifaourに感謝します:%5B379396442071062%5D-> 379396442071062

私の意見では、これはページタブに対して行う標準的な使用例であり、実際にこれを実行したり、その解決策を見つけたりするのは非常に難しいとは信じられませんでした。

あなたが助けることができることを願っています!

4

1 に答える 1

4

現在のロジックに問題はないと思います。[ページ タブの追加] ダイアログを使用して一度に複数のページにアプリを追加できるため、Facebook は次のステップを制御できるようにしています。

Facebook は、管理者がダイアログから選択したページの ID を返します。結果は複数の ID になる可能性があるため、管理者を Facebook ページ タブにリダイレクトすることはお勧めしません。

https://www.facebook.com/pages/-/PAGE_ID?sk=app_APP_ID

ここで、アプリが正常に追加されたページをリストすることを検討することをお勧めします (また、ソリューションをより効果的に宣伝するための「デモ」または「次のステップ」を提供することもできます)。

応答を処理する簡単なコードを次に示します。

<?php
if(!empty($_GET['tabs_added'])) {
    $tabs_ids =  array_keys($_GET['tabs_added']);
    $comma_separated_ids = implode(",", $tabs_ids);
    $api_call = "https://graph.facebook.com/fql?q=SELECT+page_url,pic,name+FROM+page+WHERE+page_id+IN+($comma_separated_ids)";
    $fql_query_result = file_get_contents($api_call);
    $result = json_decode($fql_query_result, true);
    if(!empty($result["data"])) {
        echo "Congratulations! You have successfully added our App to the following pages:<br />";
        foreach($result["data"] as $page) {
            echo "<img src=\"{$page['pic']}\" alt=\"{$page['name']}\" /> <a href=\"{$page['page_url']}\">{$page['name']}</a><br />";
        }
    }
} else {
    echo "It seems that you didn't add our awesome app to any of your pages. Want to <a href=\"https://www.facebook.com/dialog/pagetab?app_id=APP_ID&next=". urlencode("YOUR_URL") . "\">try again<a/>?";
}

このコードは、ユーザーがもう一度促すダイアログをキャンセルしたかどうかを確認します。また、選択したページの名前、画像、リンクを取得して一覧表示します。

免責事項: このコードは単なる例です。非公開の非公開ページは FQL クエリで取得できない場合があります。

于 2012-10-17T23:45:30.370 に答える