2015-07-06 463 views
-1

我是新手的概念CURL。現在我正在嘗試使用PHP curl來遠程登錄Facebook。我已提到Refer,Refer 1,Refer 3,Refer 4。但它並沒有明確表示我的懷疑。使用捲曲自動登錄到遠程網站php

我的代碼如下位置:

define('HOME' , dirname(__FILE__)); 

//Create a curl object 
$ch = curl_init(); 
if(is_callable('curl_init')){ 
    echo "Enabled"."<br>"; 
    } 
    else 
    { 
    echo "Not enabled"."</br>"; 
    } 

    $login_url = 'https://www.facebook.com/login/'; 

    //These are the post data username and password 
    $post_data = array('email'=>'MY_EMAIL_ID','pass'=>'gdfgg'); 

    //Set the useragent 
    $agent = $_SERVER["HTTP_USER_AGENT"]; 
    //echo $agent; 

    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 

    //Set the URL 
    curl_setopt($ch, CURLOPT_URL, $login_url); 

    //This is a POST query 
    curl_setopt($ch, CURLOPT_POST, 1); 

    //Set the post data 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 

    //We want the content after the query 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    //Follow Location redirects 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

    /* 
    Set the cookie storing files 
    Cookie files are necessary since we are logging and session data needs to be saved 
    */ 

    curl_setopt($ch, CURLOPT_COOKIEJAR, HOME. '/cookie.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, HOME. '/cookie.txt'); 

    //Execute the action to login 
    $postResult = curl_exec($ch); 

    curl_close($ch); 
    echo $postResult; 

當我在我的Firefox DOM部分檢查,它表明 enter image description here

在我cookie.txt,我沒有代碼的是,它代表空連儘管我將權限更改爲全部。

問題1:上面的代碼會做什麼?

問題2:如何檢查它在DOM中的工作與否?

問題3:它會在本地工作嗎?

+0

您是否正在尋找使用Facebook登錄? (或社交網絡登錄API) –

+0

是登錄Facebook使用捲曲 –

+1

你爲什麼要通過捲曲來做到這一點?只需創建一個適當的登錄並存儲訪問令牌。 – luschn

回答

0

如果沒有身份驗證(OAuth)& APP conf,Facebook將永遠不會接受任何請求。

下面將爲您介紹如何使用Facebook爲您的網站開發登錄。

如Facebook開發人員登錄:

而且,你應該參考

https://developers.facebook.com/docs/facebook-login/v2.3

你必須創建你的APP第一https://developers.facebook.com/apps/

<!DOCTYPE html> 
<html> 
<head> 
<title>Facebook Login JavaScript Example</title> 
<meta charset="UTF-8"> 
</head> 
<body> 
<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  : '{your-app-id}', 
    cookie  : true, // enable cookies to allow the server to access 
         // the session 
    xfbml  : true, // parse social plugins on this page 
    version : 'v2.2' // use version 2.2 
    }); 

    // 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 + '!'; 
    }); 
    } 
</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. 
--> 

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

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

</body> 
</html> 
+0

ji我很新,這....你可以解釋什麼去那裏? –

+0

其實我正在學習curl.I想做一個像[Link](http://www.binarytides.com/remote-login-with-curl-php/)這樣的東西。 –

+0

首先,您必須瞭解如何在Facebook開發中配置您的應用程序。然後開始編寫代碼。 –