Closed GoogleCodeExporter closed 9 years ago
Hey ivanndoit, can you try the latest version available on trunk, and see if
that fixes the issue?
http://code.google.com/p/google-api-php-client/source/checkout
Thank you,
Chirag
Original comment by chirags@google.com
on 1 Feb 2012 at 8:03
Hi Chirag, Thanks for responding.
I tried the current revision, but it gave me the same error.
I did change 2 things before running the example:
1) Added my developer info to the config file.
2) Changed CURLOPT_SSL_VERIFYPEER to FALSE in the apiCurlIO.php file (It gives
me a ssl verification error otherwise.)
Original comment by ivandt...@gmail.com
on 2 Feb 2012 at 3:57
I did some testing and the post body of the CURL request does have a grant_type
with a value in the array as it is set in the curl options. So either the curl
request is not sending it or the api does not see it.
Original comment by ivandt...@gmail.com
on 2 Feb 2012 at 4:06
Which version of libcurl/php are you using? This should help me reproduce the
issue.
Original comment by chirags@google.com
on 3 Feb 2012 at 8:13
I am using php 5.3.1 on Windows with Apache as my server.
This is the curl section of php info:
cURL support enabled
cURL Information 7.19.6
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 No
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps
Host i686-pc-mingw32
SSL Version OpenSSL/0.9.8l
ZLib Version 1.2.3
Original comment by ivandt...@gmail.com
on 4 Feb 2012 at 3:12
hi dude,
i also getting same issue
Fatal error: Uncaught exception 'apiAuthException' with message 'Error fetching
OAuth2 access token, message: '<HTML> <HEAD> <TITLE>Required parameter is
missing: grant_type</TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Required parameter is missing: grant_type</H1> <H2>Error 400</H2> </BODY>
</HTML> '' in
C:\xampp\htdocs\gfp\google-api-php-client\src\auth\apiOAuth2.php:104 Stack
trace: #0 C:\xampp\htdocs\gfp\google-api-php-client\src\apiClient.php(131):
apiOAuth2->authenticate(Array) #1
C:\xampp\htdocs\gfp\google-api-php-client\examples\calendar\simple.php(21):
apiClient->authenticate() #2 {main} thrown in
C:\xampp\htdocs\gfp\google-api-php-client\src\auth\apiOAuth2.php on line 104
Original comment by smb.ma...@gmail.com
on 5 Feb 2012 at 2:04
[deleted comment]
Hi,
I have same error:
Fatal error: Uncaught exception 'apiAuthException' with message 'Error fetching
OAuth2 access token, message: '<HTML>
<HEAD>
<TITLE>Required parameter is missing: grant_type</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Required parameter is missing: grant_type</H1>
<H2>Error 400</H2>
</BODY>
</HTML>
'' in /www/sites/5/site10085/public_html/dp/google-api/auth/apiOAuth2.php:104
Stack trace:
#0 /www/sites/5/site10085/public_html/dp/google-api/apiClient.php(131):
apiOAuth2->authenticate(Array)
#1 /www/sites/5/site10085/public_html/dp/index.php(36):
apiClient->authenticate()
#2 {main}
thrown in /www/sites/5/site10085/public_html/dp/google-api/auth/apiOAuth2.php on line 104
My only edit to code was
$client->setClientId('##################');
$client->setClientSecret('##################');
$client->setRedirectUri('##################');
$client->setDeveloperKey('##################');
and I changed CURLOPT_SSL_VERIFYPEER to FALSE in the apiCurlIO.php file.
I have same error on server (www.php5.sk) but in localhost(XAMPP 1.7.7 win32)
it is working perfect.
Anyone have solution yet?
PS: I do change $client for localhost. Have API for localhost and php5.sk server
Original comment by ing.mich...@gmail.com
on 7 Feb 2012 at 3:51
Hey everybody,
This should really be fixed in 0.4.9. Please let me know if it doesn't fix the
issue!
Link:
http://code.google.com/p/google-api-php-client/downloads/detail?name=google-api-
php-client-0.4.9.tar.gz
Original comment by chirags@google.com
on 9 Feb 2012 at 7:09
Original comment by chirags@google.com
on 9 Feb 2012 at 9:58
Hey Chirags,
I am sad to report that the changes did not resolve the issue.
Original comment by ivandt...@gmail.com
on 10 Feb 2012 at 12:17
Hmm, I apparently fixed an unrelated bug then. I need some more information
then.
Can you add the following line inside io/apiCurlIO.php right above line 112
(above curl_exec):
curl_setopt($ch, CURLOPT_VERBOSE, 1);
And then send me the request/response that's logged (make sure you strip out
any tokens included within the request)
Original comment by chirags@google.com
on 10 Feb 2012 at 12:22
This is what I get from the Apache error log:
* About to connect() to accounts.google.com port 443 (#0)
* Trying 173.194.67.84... * connected
* Connected to accounts.google.com (173.194.67.84) port 443 (#0)
* SSL connection using RC4-SHA
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google Inc;
CN=accounts.google.com
* start date: 2011-07-21 00:00:00 GMT
* expire date: 2013-07-18 23:59:59 GMT
* common name: accounts.google.com (matched)
* issuer: C=ZA; O=Thawte Consulting (Pty) Ltd.; CN=Thawte SGC CA
* SSL certificate verify result: unable to get local issuer certificate (20),
continuing anyway.
> POST /o/oauth2/token HTTP/1.1
User-Agent: Google Calendar PHP Starter Application google-api-php-client/0.4.8
Host: accounts.google.com
Accept: */*
content-type: application/x-www-form-urlencoded
content-length: 245
< HTTP/1.1 400 Required parameter is missing: grant_type
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: Fri, 01 Jan 1990 00:00:00 GMT
< Date: Fri, 10 Feb 2012 17:16:23 GMT
< Content-Type: text/html; charset=UTF-8
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< Server: GSE
< Transfer-Encoding: chunked
<
* Connection #0 to host accounts.google.com left intact
* Closing connection #0
There is nothing else, no post body or nothing. I did not event strip out any
tokens.
Original comment by ivandt...@gmail.com
on 10 Feb 2012 at 5:38
Thanks for that! I'm still trying to place where the issue is.
Can add add this line before processEntityRequest()
error_log("Before process entity: " . print_r($request->getPostBody(), true));
Also, add this line before the curl exec (you can remove the curlopt_verbose
line)
error_log("Before curl_exec: " . print_r($request->getPostBody(), true));
Thank you so much for helping debug this!
Original comment by chirags@google.com
on 10 Feb 2012 at 6:15
This is the result (Censored some of the data):
[Fri Feb 10 21:00:27 2012] [error] [client 127.0.0.1] Before process entity:
Array\n(\n [code] => 4/bH_B78RcQOOyHS6AAGskRB52****\n [grant_type] =>
authorization_code\n [redirect_uri] =>
http://me/google/examples/calendar/simple.php\n [client_id] =>
***294485334.apps.googleusercontent.com\n [client_secret] => ******\n)\n
[Fri Feb 10 21:00:27 2012] [error] [client 127.0.0.1] Before curl_exec:
code=4%2FbH_B78RcQOOyHS6AAGskRB52jySS&grant_type=authorization_code&redirect_uri
=http%3A%2F%2Fme%2Fgoogle%2Fexamples%2Fcalendar%2Fsimple.php&client_id=***294485
334.apps.googleusercontent.com&client_secret=*****
Original comment by ivandt...@gmail.com
on 10 Feb 2012 at 7:03
Wow thank you so much! You can remove those debug statements now.
The bug is with http_build_query using "&" instead of "&" on certain builds of
PHP (according to the comments on
http://php.net/manual/en/function.http-build-query.php)
A quick fix is to change the line:
$postBody = http_build_query($postBody);
to:
$postBody = http_build_query($postBody, '', '&');
I'm working on spinning off a new build to fix this issue, but can you confirm
that this finally fixes the issue :)
Original comment by chirags@google.com
on 10 Feb 2012 at 7:19
Ok cool that fixed it. Thanks for sticking with it on this issue.
Original comment by ivandt...@gmail.com
on 10 Feb 2012 at 7:49
Original comment by chirags@google.com
on 10 Feb 2012 at 7:50
Original issue reported on code.google.com by
ivandt...@gmail.com
on 20 Jan 2012 at 4:35