13

ファンページでFacebookアプリをiframeアプリとして構築しています。現時点での私の問題は次のとおりです。Facebookリクエストダイアログ(http://developers.facebook.com/docs/reference/dialogs/requests)を追加しましたが、1つのことを除いてすべてうまくいきます:ユーザーが通知を受け取ると、リンクファンページではなく、キャンバスページに移動します(どこに行きたいですか...)

Facebookにいくつかの機能を追加するよう説得できないので(それは素晴らしいことです)、アプリのキャンバスページからファンページに自動的にリダイレクトする方法を探しています。このアプリはiframeタブとして追加されます。

誰かが私がやりたいことを理解してくれることを願っています... :)

ありがとう、ピーター

4

4 に答える 4

31

また、ユーザーが (Facebook アプリ ページや実際のサイト自体を直接表示するのではなく) Facebook ページ タブを介して私の Facebook アプリを表示するようにしたいと考えました。<script>ドキュメントのタグでこのJavascriptを使用してそれを達成することができましたhead(テスト済みのMac / PC FF、Chrome、Opera、IE6-8、Safari)。

<script type="text/javascript">
  function NotInFacebookFrame() {
    return top === self;
  }
  function ReferrerIsFacebookApp() {
    if(document.referrer) {
      return document.referrer.indexOf("apps.facebook.com") != -1;
    }
    return false;
  }
  if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
    top.location.replace("http://permalink-to-my-facebook-page-tab");
  }
</script>
于 2011-07-28T16:14:53.753 に答える
14

私があなたを正しく理解しているなら、あなたはこれを行うことができます:

top.location.href='http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID'

または、ヘッダーを使用してそのURLにリダイレクトできます。これにより、ファンページのアプリケーションのタブにリダイレクトされます。

于 2011-04-19T10:40:21.173 に答える
2

私のアプリケーションは非常に動的で、どのページに追加されたのかわかりません。そのため、URL 'http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID' を使用すると、ページにリダイレクトされるだけで、アプリケーション タブにはリダイレクトされませんでした。私がすることは:

1)signed_requestからページIDを取得します(誰かがページにアクセスするとアプリが取得するbase64urlパラメーターで暗号化されているため、復号化してJSONページオブジェクトからID値を選択する必要があります)

2) 次に、https://graph.facebook.com/PAGE_ID_YOUR_GETからページ データを取得します。JSON 形式の応答で、いくつかのページ データを含む JSON オブジェクトを取得します。

3) ポイント 2 の後でのみ、応答からページの「リンク」値を取得します。http://www.facebook.com/pages/Some-Page-Nameのようなものです

4) 最後に、「?sk=app_YOUR_APP_ID」をページ リンクに追加します。

多分それは複雑すぎるかもしれませんが、それが私が期待したように機能する唯一の方法です(ページアプリケーションタブに正確にリダイレクトします)。

于 2011-12-31T10:24:47.577 に答える
-2
<script type="text/javascript">
  function NotInFacebookFrame() {
    return top === self;
  }
  function ReferrerIsFacebookApp() {
    if(document.referrer) {
      return document.referrer.indexOf("apps.facebook.com") == -1;
    }
    return false;
  }
  if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
    top.location.replace("http://permalink-to-my-facebook-page-tab");
  }
</script>
于 2014-07-14T15:02:21.907 に答える