我尝试使用python gcm向android设备发送推送通知,但在我的服务器中它总是无法通过身份验证,我尝试使用服务器IP地址创建一个新的服务器api密钥并尝试
curl --header "Authorization: key =$api_key" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"ABC\"]}"但它显示了
<TITLE>Unauthorized</TITLE>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>但是,当我尝试在没有指定任何IP的情况下创建一个新的api密钥时,它工作正常,并显示
{"multicast_id":8030697046624335774,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}因此,我无法使用具有受限IP的api密钥发送通知,但它可以在不给出任何IP的情况下工作。已知的问题是服务器IP是IPV6,并发现通过IPV6发送GCM有一些问题。有人能帮我解决这个问题吗?
发布于 2014-05-14 02:11:12
我也有同样的问题,我已经找到了一种解决方法。
如果您的服务器也有IPV4地址,那么解决方案就是在IPV4中工作!
您必须在CURL指令中插入以下内容(以及您的IPV4地址):
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");https://stackoverflow.com/questions/22111999
复制相似问题