2011-12-08 5 views
0

Facebookでアプリケーションを作成しました。 Facebook Javascript SDkを使用して、アンドロイドのphonegapアプリケーションからfacebook wallにメッセージを投稿しました。壁にメッセージ投稿の前に許可ダイアログを表示します。 (すなわち)許可ダイアログの "許可"ボタンをクリックしている間は、壁、私は "許可しない"ボタンをクリックしている間、メッセージは壁に投稿すべきではありません。 私のコードは次のとおりです。壁にメッセージを投稿するための権限ダイアログを設定する方法

<body> 
<div id='fb-root'></div> 
<script src='all.js'></script> 
<input type="text" value="User ID" name="user_ids" /> 
      <p><a onclick='postToFeed(); return false;'>Post to Feed</a></p> 
      <p id='msg'></p> 
    <script> 
     FB.init({appId: "xxxxxxxx", status: true, cookie: true}); 

     function postToFeed() 
    { 
        var user_ids = document.getElementsByName("user_ids")[0].value; 
        alert(user_ids); 

        FB.api('/me/feed', 'post', { message: user_ids}, function(response) { 
          if (!response || response.error) { 
          alert('Error occured'); 
          } else { 
          alert('Post ID: ' + response.id); 
          } 
        }); 
     } 
    </script> 
    </body> 

上記のコードは、サーバー上でホストされています。 phonegap(index.html)では、window.openメソッドを使用してURLを呼び出しました。テキストボックスとボタンが表示されます。私はボタンをクリックしている間に、メッセージが壁に投稿される(テキストボックスから値を取得) このコーディングの許可ダイアログを設定する方法、またはFB.api( '/ me/feed'の{perms: 'publish_stream'}を渡す方法「)

私に事前に

おかげで、いくつかの提案/アイデアを教えてください。

答えて

0

あなたの質問が正しいかどうか分かりませんが、私はこれを提案します: 最初に許可を求め、次のステップで送信ボタンを表示するか、自動的に投稿を送信します。同時に(私はただ概念を得ていない)両方ではありません。少し助けてくれるコードがあります:

window.fbAsyncInit = function() { 
    FB._https = true; 
    FB.init({ 
     appId : 'APP_ID', 
     status : true, 
     cookie : true, 
     oauth : true 
    }); 

    // Check whether the user is connected to the app 
    FB.getLoginStatus(function(response) { 
     if (response.status !== 'connected') { 
      // The user has not authorized the app 
      authorizeApp(); 
     } else { 
      // The user has already authorized the app 
      var fbuid = response.authResponse.userID; 
      var accessToken = response.authResponse.accessToken; 
      FB.api('/me', function(response) { 
       // Check for publish_stream extended permission 
       var query = FB.Data.query('select publish_stream from permissions where uid={0}', fbuid); 
       query.wait(function(rows) { 
        if(rows[0].publish_stream == 1) { 
         // The user has granted the extended permission 
         postToWall(); 
        } else { 
         // The user has not granted the extended permission 
         authorizeApp(); 
        } 
       }); 
      }); 
     } 
    }); 
}; 
(function() { 
    var e = document.createElement('script'); 
    e.type = 'text/javascript'; 
    e.src = document.location.protocol + '//connect.facebook.net/de_DE/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
}()); 

function authorizeApp() { 
    // Redirect the user back after authorization 
    var path = 'https://www.facebook.com/dialog/oauth?'; 
    var queryParams = ['client_id=APP_ID', 'redirect_uri=REDIRECT_URI', 'response_type=token', 'scope=publish_stream']; 
    var query = queryParams.join('&'); 
    var url = path + query; 
    top.location.href = url; 
} 

// OR 
function authorizeAppInPopup() { 
    FB.login(function(response) { 
     if (response.authResponse) { 
      // User authorized app 
      postToWall(); 
     } else { 
      // User cancelled login or did not fully authorize 
     } 
    }, {scope: 'publish_stream'}); 
} 
+0

ありがとうございましたご回答ありがとうございます。テキストボックス値を取得してFB.apiに渡す方法( '/ me/feed /'、 'post'、{message: ''}、fuuction(res){}); FB.login関数の内部で、私のコーディングは、次回はエラーが発生したことを表示します。 – Mercy

+0

hai、私のサーバー名はhttp://yyy.xxxxx.comです。今私はserver.openメソッドを使用してURLを呼び出すphonegapアプリケーションのサーバー上で自分のコードをホストします。私のlogcatの表示エラー:安全でないJavaScriptがurlファイルのフレームにアクセスしようとしました://.../ url http://yyy.xxxxx.comのフレームから。この問題を解決するにはどうすればよいのですか? – Mercy

関連する問題