#_=_
Facebook コールバックはリターン URL にハッシュ アンダースコアを追加し始めました
理由を知っている人はいますか? 解決策は何ですか?
ベストアンサー1
セッションリダイレクト動作の変更
今週、このフィールドが空白の場合、redirect_uri にフラグメント #____=____ の追加を開始しました。アプリがこの動作を処理できることを確認してください。
これを防ぐには、ログイン URL リクエストで redirect_uri を次のように設定します (Facebook php-sdk を使用)。
$facebook->getLoginUrl(array('redirect_uri' => $_SERVER['SCRIPT_URI'],'scope' => 'user_about_me'));
アップデート
上記はまさにドキュメンテーションこれを修正する方法は、Facebookが文書化した解決策では解決できません。Facebook プラットフォームアップデートのブログ投稿そしてフォローこのバグより良い回答を得るために、次のコードをヘッドタグに追加してください。
<script type="text/javascript">
if (window.location.hash && window.location.hash == '#_=_') {
window.location.hash = '';
}
</script>
または、より詳細な代替案(ありがとうニフティレタス):
<script type="text/javascript">
if (window.location.hash && window.location.hash == '#_=_') {
if (window.history && history.pushState) {
window.history.pushState("", document.title, window.location.pathname);
} else {
// Prevent scrolling by storing the page's current scroll offset
var scroll = {
top: document.body.scrollTop,
left: document.body.scrollLeft
};
window.location.hash = '';
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scroll.top;
document.body.scrollLeft = scroll.left;
}
}
</script>