我需要使用 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;