2011-12-25 5 views
1

私はシンプルなFacebookのキャンバスアプリを開発しています。私は、ドキュメントでこのページ以下の通りであった:私のアプリでhttp://developers.facebook.com/docs/appsonfacebook/tutorial/ダイアログフィードが処理後にリダイレクトされない

、私はそれを共有するユーザーを奨励したいと思いますので、私はこれに応じてフィードダイアログ(最初のJavaScriptの例)を作ってみました:http://developers.facebook.com/docs/reference/dialogs/feed/

私はリンクを共有できますが、共有またはキャンセルをクリックしても何も起こりません。 redirect_uriパラメータを定義しました。これは、アプリの設定で定義されているのと同じドメインURIです。変わったのは、閉じるボタン(X)をクリックすると、redirect_uriのページがiframeダイアログのライトボックスの中に読み込まれるということです。

何か問題がありますか?長いグーグル・グーグルが結果をもたらさない:/

答えて

0

ドキュメントごとに、redirect_uriは、誰かがキャンセルをクリックしたとき(または共有しないでダイアログを閉じるとき)にのみ使用されます。彼らが共有している場合はどこに行くのドキュメントから私は言うことができません。しかし、iframe付きのダイアログがページをネストしてしまう状況は非常に奇妙です。私の最初の本能は、何かがアプリの設定で間違っているということです。 facebookアプリのhttpバージョンとhttpsバージョンの両方が指定されていることを確認してください。

+0

ありがとうございました。ドキュメントによると、ボタンをクリックするたびにredirect_urlが使用されるはずです。 ( "ユーザーがダイアログ上のボタンをクリックした後にリダイレクトするURL。") しかし、それは最大の問題ではありません。アプリの設定については、私は本物のhttpsを持つサーバーにアクセスすることはできず、醜いエラーをスローする自己署名証明書だけがあります。これが問題になるのでしょうか?有料の証明書なしでWebサーバーを使用する場合の回避策はありませんか? –

+0

実際のhttpsサイトを取得する必要があります。私はそれが支払われた証明書でのみ行うことができると思う。そうでない場合、何かが本当にインターネットで間違っていると私は再びhttpsのサイトにいることを信じることはありません... – DMCS

+0

はい、私は証明書を持っていないhttpsをシミュレートする方法がないことを理解しています:)しかし、あなたのキャンバスアプリページのためのhttps接続を必要としないフェイスブック。にもかかわらず、あなたの答えをありがとう、今私は問題があるhttpsが不足していると思うし、ソリューションと思われるいくつかのFacebookのクラウドサービスパートナーを介してホスティングしようとし、それはまた、小さなアプリケーションのために無料です。 –

0

facebookフィードの対話で使用できるのと同じコードです。私はアプリの要件を採用するように変更しました。もしcancelが '#'をredirect_uriとして使用するならばライトボックスが開きます。そうすればdocument.locationを感謝のページに移動するレスポンス関数を使用します。

<script src='http://connect.facebook.net/en_US/all.js'></script> 
<script> 
    FB.init({appId: "<?=$config['appId'];?>", status: true, cookie: true}); 

    function postToFeed() { 
    // calling the API ... 
    var obj = { 
     method: 'feed', 
     redirect_uri: '#', 
     link: 'https://www.facebook.com/MyPageName/app_<?=$config['appId'];?>', 
     picture: 'https://www.abc.com/fbapp/img/welcome.jpg', 
     to: friendId,// js variable I am fetching from radio button selection 
     name: 'App Blah Blah', 
     caption: 'your_caption', 
     description: 'your_description' 
    }; 

    function callback(response) { 
// I commented out message print in div 
//   document.getElementById('msg').innerHTML = "Post ID: " + response['post_id']; 

// check weither feedback is valid 
     if(typeof(response)!='undefined'){ 
      document.location = 'thankyou.php'; 
     } 
    } 

    FB.ui(obj, callback); 
    } 

</script> 
関連する問題