间歇性401未经Google GCM授权

问题描述 投票:0回答:2

我们从 Google 的 GCM 服务中收到间歇性的 401 未经授权错误。在过去,它100% 有效。该问题可能与我们的路由器接受 IPv6 流量同时发生,但即使我们在适配器上禁用 IPv6,问题仍然存在。它也不适用于单独的纯 IPv4 网络。我们还使用 Google 建议的指数回退(http://developer.android.com/google/gcm/adv.html#retry)重试我们的请求,因此问题可能会随着时间的推移而发展,而我们可能没有注意到了。

我们测试过的所有生产 IPv4 和 IPv6 地址都列在我们的项目中: https://console.developers.google.com

这是我们的密钥的样子,我们已经列出了整个可公开访问的子网以供测试,但我也尝试过仅使用单个 IP 地址。

enter image description here

有时它会起作用:

C:\Users\Administrator>curl --header "Authorization: key=REDACTED" --header Content-Type:"application/json" https://android.googl
eapis.com/gcm/send  -d "{\"registration_ids\":[\"test\"],\"data\":{\"code\":123}
}" -k
{"multicast_id":REDACTED,"success":0,"failure":1,"canonical_ids":0,"r
esults":[{"error":"InvalidRegistration"}]}

但是,有时我们会得到这样的回应:

C:\Users\Administrator>curl --header "Authorization: key=REDACTED" --header Content-Type:"application/json" https://android.googl
eapis.com/gcm/send  -d "{\"registration_ids\":[\"test\"],\"data\":{\"code\":123}
}" -k
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

小更新(2014 年 4 月 10 日)

将设置更改为“允许任何 IP”可以解决问题,但更改为任何其他 IP 地址或多个地址会再次破坏该问题。

android google-cloud-messaging http-status-code-401 unauthorized
2个回答
0
投票

通过将 IP 地址字段留空来重新生成服务器密钥,解决了问题。


0
投票

有人回答这个问题我一直在寻找答案https://stackoverflow.com/staging-ground/79260969

© www.soinside.com 2019 - 2024. All rights reserved.