I’ve migrated a web application that sends push notifications to Android apps using Google Cloud Messaging from my local workstation to a server.
Connecting to https://android.googleapis.com/gcm/send worked perfectly from my workstation. My list of allowed IPs in my Google API project includes my server’s IP (and I’ve triple checked it), but when I connect using the exact same API key from the server, I am always getting a 401 (unauthorized) response back from Google.
I am connecting from a Linode VPS, and when I wget the same URL, I can see that it is going over IPV6. I’ve copied my server’s IPV6 address from http://whatismyv6.com/ and also included that in the list of allowed IPs, but still I’m still only getting 401 responses.
My guess is it’s related to IPV6, so I’ll go ahead and try to force connecting over IPV4- but I’m curious about whether anyone else has experienced this.
Interesting. It suddenly just started working. Out of curiosity, I removed my IPV6 address, tried again and it failed. Then after adding it back, it failed a few times before started working again.
It seems that it may just take a little while for Google to accept the IPV6 address?
I guess I’ll leave this question / answer though, in case anyone else experiences it. Make sure your server’s IPV6 address is in the allowed list, then just go refill your coffee and try again later.