Php Curl和googleforms

Php Curl和googleforms,php,curl,google-forms,Php,Curl,Google Forms,我正在制作PHP脚本,它将自动填充Google表单文档。我正在使用Curl。但是,这个脚本的正确性存在问题 $text="forTestOnly"; if( $curl = curl_init() ){ curl_setopt($curl,CURLOPT_URL,'https://docs.google.com/forms/d/1bJXxSXzIkm7NtDCZXE4J3VF5UugVm4B_qTFuGFp1bKE/viewform'); curl_setopt($curl, CURLO

我正在制作PHP脚本,它将自动填充Google表单文档。我正在使用Curl。但是,这个脚本的正确性存在问题

$text="forTestOnly";
if( $curl = curl_init() ){
  curl_setopt($curl,CURLOPT_URL,'https://docs.google.com/forms/d/1bJXxSXzIkm7NtDCZXE4J3VF5UugVm4B_qTFuGFp1bKE/viewform');
  curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
  curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
  curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');
  curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  curl_setopt($curl,CURLOPT_HEADER,true);
  if( $html = curl_exec($curl) ){
     curl_setopt($curl,CURLOPT_URL,'https://docs.google.com/forms/d/1bJXxSXzIkm7NtDCZXE4J3VF5UugVm4B_qTFuGFp1bKE/viewform');
     curl_setopt($curl,CURLOPT_POST,TRUE);
     curl_setopt($curl,CURLOPT_POSTFIELDS,"entry.867207060=$text&submit=ok");
     $out = curl_exec($curl);
     echo $out;
  }
  curl_close($curl);
 }
它给出这样的错误:“HTTP/1.1405方法不允许”。有什么问题

关于


编辑:


问题不在Curl(POST)的设置中,但我提供的URL不正确。

看来谷歌可能不允许在谷歌表单中使用POST方法,可能是为了防止自动请求

对于您为什么会收到错误消息的一般解释,或者更好

有关可能的解决方案,请参阅建议的升级答案

 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array(...) ));

方法,它可能允许也可能不允许您绕过谷歌的反自动化措施。

好的,我还认为防止自动请求就是这样。