I am always getting 401 error.Please any one could let me know exactly what should be HTTP referrers if i am using my local server. i.e Currently I am using:
I battled same problem. Turned out it was IPv6 related! I created server key as described in http://developer.android.com/google/gcm/gs.html using 0.0.0.0/0 as permitted host IP, but that does not match IPv6. So I added another permitted host line IP as 0::0/0 and that worked (AFTER some time, to update cached config?).
Leaving the IP field blank allows ANY IP and is easier.
This is due to you are not enable you IP to access GCM,To Know your network IP type "my ip" in GOOGLE,after that create SERVER KEY in you Google_Api_Console and Use the ip in SERVER KEY generation,Use the SERVER KEY in your php file in local server,the first image show's the list of key in google console to select,choose server key and second image show's that to put the ip what you need to enable.
I can see several errors:
Contenttype:application/json
should be Content-Type: application/json
.CURLOPT_SSL_VERIFYPEER => false
and CURLOPT_SSL_VERIFYHOST => false
are required.You can find many PHP GCM samples that work (for example - here).