簡體   English   中英

登錄時使用CURL和PHP獲取facebook cookie

[英]Using CURL and PHP to get facebook cookie when login

我正在嘗試使用facebook cookie獲取my_cookie.txt,以便我可以將CURL重新用於其他Facebook頁面。

這是我的PHP代碼...當我嘗試這個...我看到Facebook登錄頁面,但它給我一個錯誤說我的瀏覽器中的cookie必須啟用...但它們是啟用。

$email = 'my email';
$password = 'mypassword';
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php');
    curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($email).'&pass='.urlencode($password));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
$page =      curl_exec($ch);

echo $page;

這是我看到的錯誤

在此輸入圖像描述

知道我做錯了什么嗎?

首先,它是違反facebook的TOS(更好地使用api)。

登錄只是不打算登錄頁面。 您必須首先瀏覽主頁(在這種情況下使用curl)並將cookie存儲在jar中。 然后在登錄期間使用cookie和您的登錄請求。 您可能需要從主頁(如果他們使用任何內容)中找到令牌或類似內容。

因此,步驟適用於您要發出登錄請求的任何網站:

1)使用curl瀏覽主頁。 使用jar存儲cookie。 並且不要忘記關閉卷曲。

2)如果頁面有任何令牌或隱藏參數,則從html解析。

3)初始化一個新的curl,使用user / pass + hidden參數准備post參數。 別忘了添加餅干罐。

嘗試添加這些行:

curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, uniquefilename );
curl_setopt( $ch, CURLOPT_COOKIEFILE, uniquefilename );

來自: PHP Curl和Cookies

嘿,您是否嘗試將my_cookies.txt的文件權限設置為644權限? 此外,您將需要上面的所有三行。

$cookie_file = "my_cookies.txt";
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);

一些名為datr的cookie需要設置javascript或登錄不起作用。 所以我從瀏覽器中獲取了這個cookie並將此字符串添加到cookie文件中,並成功登錄!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM