0

我需要使用 PHP 通过 Curl 连接到 GitHub 并创建一个新问题。

我可以连接到 GitHub 并访问“新问题”页面。但是,之后我无法发布标题和正文。所以我做了所有事情,但在最后一步(ISSUE POST)我遇到了以下错误。

“什么‽您的浏览器发生了意外。如果问题仍然存在,请联系我们。”

我认为 cookie 没有问题

有谁知道该怎么做?

require 'simple_html_dom.php';  

define('USERNAME', 'username');      
define('PASSWORD', 'password');
define('LOGIN_FORM_URL', 'https://github.com/login');
define('LOGIN_ACTION_URL', 'https://github.com/session');   
define('ISSUES_FORM_URL', 'https://github.com/bdohyuga/olacakokadar/issues/new/choose');
define('ISSUES_ACTION_URL','https://github.com/bdohyuga/olacakokadar/issues' );

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/80.0.3987.149 Mobile Safari/537.36' );
//curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);


curl_setopt($ch, CURLOPT_URL,LOGIN_FORM_URL); 
$login = curl_exec($ch); // FORM ISTEGI

foreach(str_get_html($login)->find('input') as $element) {           
$postValues[$element->name] = $element->value;
}
$postValues['login'] = USERNAME;
$postValues['password'] = PASSWORD; 


curl_setopt($ch, CURLOPT_URL,LOGIN_ACTION_URL); 
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postValues);              
$login =  curl_exec($ch);   // GIRIS ISTEGI


curl_setopt($ch, CURLOPT_URL,ISSUES_FORM_URL);          
$login = curl_exec($ch); // NEW ISSUE
//echo $login;

foreach(str_get_html($login)->find('input') as $element) {           
$issuesValues[$element->name] = $element->value;            
}

$issuesValues['issue[title]'] = "TITLE SUCCESS";
$issuesValues['issue[body]'] = "body success";


curl_setopt($ch, CURLOPT_URL,ISSUES_ACTION_URL); 
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $issuesValues);                
$login =  curl_exec($ch); // ISSUES ISTEGI
echo $login;
4

0 回答 0