私のサイトでの行動の流れは次のとおりです。
- ユーザーはウェブサイトで欲しいものを見つけます
- ブラウザのボタンをクリックすると、自分のサイトのコンテンツを含む iframe が開き、ユーザーが見ていたアイテムをリストに追加できるようになります
- (この時点で、私のシステムはデータベースに詳細を追加する作業を行います)
- その後、ユーザーはクリックして iframe を閉じ、元の操作を続行します。
ユーザーが何かを追加することを選択したとき、アクションを Facebook のタイムラインにも公開したい
次のコードは正常に機能しますが、タスクが完了すると、$my_url という名前の所定の URL にリダイレクトされます。
問題は、この時点で「 *がリストに正常に追加されました」と言っている iframe ポップアップが開いているため、このアクションの投稿をシームレスに実行したいことです。
リダイレクトを停止して、バックグラウンド操作だけにすることはできますか? ユーザーが既に見ているものにリダイレクトすることはできません。これは、fb アプリ内の URL を所有する必要があるため、1 つのアイデアでした。
これは私が使用しているコードです
$app_id = "_APP_ID_";
$app_secret = "_SECRET";
$my_url = "http://*******.com/pages/add.html";
$og_url = "http://*******.com/pages/view?id=$new_id";
$code = $_REQUEST["code"];
if(empty($code)) {
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. &scope=email,user_birthday,friends_birthday,user_likes,friends_likes,publish_stream";
echo("<script>top.location.href='" . $dialog_url . "'</script>");
}
$token_url="https://graph.facebook.com/oauth/access_token?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$access_token = file_get_contents($token_url);
// remove the @expires
$params = null;
parse_str($access_token, $params);
$access_token_updated = $params['access_token'];
$post_data = "wish=" . $og_url . "&access_token=" . $access_token_updated;
// setup the curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/me/*******:add');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// execute the curl
$result = curl_exec ($ch);
if(curl_error($ch))
{
//echo 'error:' . curl_error($ch) . "<br/>";
}
curl_close ($ch);
これを回避する別の方法はありますか?