我想开发一个Django应用程序来发送消息来google c2dm服务器到andriod device.it使用OAuth2进行授权。 首先,我获得了凭据并将其作为存储存储在存储中,然后我想从中获取凭据 存储并将此凭据与其他参数和标头一起发送到c2dm api。 我可以获得范围https://android.apis.google.com/c2dm的凭据并将其存储在存储中。 请一位人士指导我,如何使用凭据提出请求并发送给https://android.clients.google.com/c2dm/send以进行交付。 提前谢谢,
答案 0 :(得分:1)
我认为您已经能够在Google OAuth 2.0 Playground上执行第2步 Exchange令牌代码。那么您应该已经获得刷新令牌和访问令牌(如果您没有收到刷新令牌,请确认您已选中强制批准提示并在 OAuth 2.0配置中为访问类型选择离线。
访问令牌将在一段时间(通常为1小时)后过期,但刷新令牌不会过期。刷新令牌(连同 OAuth客户端ID 和 OAuth客户端密钥)可用于获取新的访问令牌:
curl --data-urlencode "client_id=OAuthClientID"
--data-urlencode "client_secret=OAuthClientSecret"
--data-urlencode "refresh_token=RefreshToken"
-d "grant_type=refresh_token" "https://accounts.google.com/o/oauth2/token"
(替换OAuthClientID,OAuthClientSecret,RefreshToken)。如需进一步阅读,请参阅:Using OAuth 2.0 for Web Server Applications - Offline Access
现在您可以使用此访问令牌和设备的注册ID,使用C2DM向该设备发送消息:
curl -k -H "Authorization: Bearer AccessToken"
--data-urlencode "registration_id=RegistrationID"
--data-urlencode "collapse_key=0"
--data-urlencode "data.message=YourMessage"
"https://android.apis.google.com/c2dm/send"
(替换AccessToken,RegistrationID和YourMessage)