0

私のページタブアプリのFacebookにdrupalを使用していますが、特定の問題があります-

認証後、ユーザーは以下のコードを使用してカスタム モジュールを介してリダイレクトされます -

<?php
function fb_example_fb($op, $data, &$return) {
  $fb_app = isset($data['fb_app']) ? $data['fb_app'] : NULL;
  $fb = isset($data['fb']) ? $data['fb'] : NULL;
  if ($op == FB_OP_AJAX_EVENT) {

    if ($data['event_type'] == 'session_change') {
      if ($fbu = fb_facebook_user()) {
        $url = url('http://apps.facebook.com/appname',
                   array('absolute' => TRUE, 'fb_canvas' => fb_is_canvas()));
        $return[] = 'FB_JS.reload("'. $url .'");';
      }
    }
  }
}
?>

ユーザーをキャンバス アプリにリダイレクトする場合は、すべてうまく機能します。問題は、ユーザーが認証後にページタブに「リダイレクト」されることを望んでいるため、iframe /メインコンテンツdivを更新する必要があるため、ユーザーが「ログイン」ボタンをクリックして認証するとすぐに、ページ タブは、カスタム主導のコンテンツで更新されます。私の目標は、ユーザーがタブを離れることなくユーザーに提供することです。

上記のコードで $url パスを https://www.facebook.com/appname/app_4557794143 (ページ タブのパス) に設定しようとすると、代わりに、ページが更新された後に facebook から次のエラーが表示されます。タブを表示する - "

残念ながらリクエストにお応えできません。もう一度やり直してください」

接続ボタンを押した後にウィンドウが更新されるように機能を変更するにはどうすればよいですか? 誰かがこれに正しい方法でアプローチすることに光を当てることができますか? 皆さん、どうもありがとう。

4

1 に答える 1

1

最後に、解決策は非常に単純で、一種のハックでした... fb.jsを介してリダイレクトしようとしたときに何らかの理由で何も機能せず、facebookが同じエラーを出し続けました。そのため、残された唯一のことは、fb.js.redirect を「オーバーライド」して使用することでした -

  if ($fbu = fb_facebook_user()) {
    $return[] = 'top.location.href="https://www.facebook.com/exampleapp/app_707794143";';
  }

将来のすべての Google 社員のために...

于 2012-11-24T19:47:23.710 に答える