2016-04-09 12 views
-1

私はユーザーがテキストボックスにURLを入力できるWebアプリケーションを開発しており、リンクのFBデータ(コメント数と共有数)を返しますFacebook APIにHTMLテキスト入力を渡すjavacript call

fblogin部分は完全に機能します。私は基本的に、現在のハードコーディングされたURL(http://www.google.com)をfb.apiに置き換えて、ユーザーがtextbox1に入れたもの(idはURL)を使用したいと考えています。

ハードコードされたURLを使用しても、FTPを使用してファイルを変更して更新する場合でも、以前に実行したURLのいずれかの結果が常に表示されます。現在入力されているもの(この例ではgoogle.com)です。

あなたがここでライブデモを見ることができます:http://floralytics.com/fb/fbapi.html

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>Facebook Login JavaScript Example</title> 
 
<meta charset="UTF-8"> 
 
</head> 
 
<body> 
 

 
\t <fb:login-button scope="public_profile,email" onlogin="checkLoginState();"> 
 
</fb:login-button> 
 

 
<div id="status"> 
 
</div> 
 

 
\t <input name="textbox1" id="url" type="text" /> 
 
<input name="buttonExecute" onclick="testAPI(document.getElementById('url').value)" type="button" value="Execute" /> 
 

 
<script> 
 
    // This is called with the results from from FB.getLoginStatus(). 
 
    function statusChangeCallback(response) { 
 
    console.log('statusChangeCallback'); 
 
    console.log(response); 
 
    // The response object is returned with a status field that lets the 
 
    // app know the current login status of the person. 
 
    // Full docs on the response object can be found in the documentation 
 
    // for FB.getLoginStatus(). 
 
    if (response.status === 'connected') { 
 
     // Logged into your app and Facebook. 
 
     testAPI(); 
 
    } else if (response.status === 'not_authorized') { 
 
     // The person is logged into Facebook, but not your app. 
 
     document.getElementById('status').innerHTML = 'Please log ' + 
 
     'into this app.'; 
 
    } else { 
 
     // The person is not logged into Facebook, so we're not sure if 
 
     // they are logged into this app or not. 
 
     document.getElementById('status').innerHTML = 'Please log ' + 
 
     'into Facebook.'; 
 
    } 
 
    } 
 

 
    // This function is called when someone finishes with the Login 
 
    // Button. See the onlogin handler attached to it in the sample 
 
    // code below. 
 
    function checkLoginState() { 
 
    FB.getLoginStatus(function(response) { 
 
     statusChangeCallback(response); 
 
    }); 
 
    } 
 

 
    window.fbAsyncInit = function() { 
 
    FB.init({ 
 
    appId  : '470275149837189', 
 
    cookie  : true, // enable cookies to allow the server to access 
 
         // the session 
 
    xfbml  : true, // parse social plugins on this page 
 
    version : 'v2.5' // use graph api version 2.5 
 
    }); 
 

 
    // Now that we've initialized the JavaScript SDK, we call 
 
    // FB.getLoginStatus(). This function gets the state of the 
 
    // person visiting this page and can return one of three states to 
 
    // the callback you provide. They can be: 
 
    // 
 
    // 1. Logged into your app ('connected') 
 
    // 2. Logged into Facebook, but not your app ('not_authorized') 
 
    // 3. Not logged into Facebook and can't tell if they are logged into 
 
    // your app or not. 
 
    // 
 
    // These three cases are handled in the callback function. 
 

 
    FB.getLoginStatus(function(response) { 
 
    statusChangeCallback(response); 
 
    }); 
 

 
    }; 
 

 
    // Load the SDK asynchronously 
 
    (function(d, s, id) { 
 
    var js, fjs = d.getElementsByTagName(s)[0]; 
 
    if (d.getElementById(id)) return; 
 
    js = d.createElement(s); js.id = id; 
 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
 
    fjs.parentNode.insertBefore(js, fjs); 
 
    }(document, 'script', 'facebook-jssdk')); 
 

 
    // Here we run a very simple test of the Graph API after login is 
 
    // successful. See statusChangeCallback() for when this call is made. 
 
    function testAPI() { 
 
// console.log('Welcome! Fetching your information.... '); 
 
    // FB.api('/me', function(response) { 
 
    // console.log('Successful login for: ' + response.name); 
 
     //document.getElementById('status').innerHTML = 
 
     //'Thanks for logging in, ' + response.name + '!'; 
 
    //}); 
 

 
//FB.api('http://graph.facebook.com/?id=https://www.youtube.com/watch?v=JtNyJWKRtbo', function(response) { 
 
//console.log(response); 
 
//alert('# of fb comments: ' + response.share.comment_count); 
 
//alert('# of fb Shares: ' + response.share.share_count); 
 
//}); 
 

 

 
FB.api("http://graph.facebook.com/?id=http://www.google.com", 
 
    function(response) { 
 
     alert('# of fb comments: ' + response.share.comment_count); 
 
alert('# of fb Shares: ' + response.share.share_count); 
 
    } 
 
); 
 

 
    } 
 
</script> 
 

 
<!-- 
 
    Below we include the Login Button social plugin. This button uses 
 
    the JavaScript SDK to present a graphical Login button that triggers 
 
    the FB.login() function when clicked. 
 
--> 
 

 

 

 
</body> 
 
</html>

答えて

1

をだから、他人を助けるために、私は答えを見つけました。簡単な使用同じデータを示すの問題については、以下の

//set an id for your text box, and call your function. something like that: 
 

 
<input name="buttonExecute" onclick="YOURFUNCTION()" type="button" value="Execute" /> 
 

 
//Then do the following inside the javascript 
 
var url = document.getElementById('url').value; 
 
FB.api("http://graph.facebook.com/?id=" + url, 
 
function(response){ 
 
... 
 
.. 
 
...

は、それはあなたがそれをプッシュする前に最初のURLをURIencodeする必要があることが判明しました。私はencodeURIComponent javascriptを使用しました

+0

途中で受け入れるように自分の答えをマークすることができます。 – Meligy

関連する問題