Google Play开发者API未返回刷新令牌

时间:2019-04-07 13:37:15

标签: android google-play google-play-developer-api

我想使用Purchase.Subscription API获得订阅数据。为此,我正在尝试从https://accounts.google.com/o/oauth2/token获取令牌。

按照documentation的要求,它应返回以下响应:

package sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Controller {
    private static final String username = "root";
    private static final String password = "";
    private static final String connection = "jdbc:mysql://localhost/hello";

    public static void main(String[] args) {
        Connection conn = null;

        try {
            conn = DriverManager.getConnection(connection, username, password);
            System.out.println("Connected");
        }
        catch (SQLException se) {
            System.err.println(se);
        }
    }
}

但是,当我尝试执行相同的步骤时,没有得到 refresh_token 字段的响应。 我正在发送文档中提到的以下字段:

{
  "access_token" : "ya29.ZStBkRnGyZ2mUYOLgls7QVBxOg82XhBCFo8UIT5gM",
  "token_type" : "Bearer",
  "expires_in" : 3600,
  "refresh_token" : "1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho"
}

请帮助我我所缺少的东西。

1 个答案:

答案 0 :(得分:1)

好。我发现了实际问题。 API方面确实缺少文档。只有在允许应用程序管理您的开发者帐户后,我们才具有以下数据的第一次调用api https://accounts.google.com/o/oauth2/token的值将为refresh_token:

grant_type=authorization_code
code=<the code from the previous step>
client_id=<the client ID token created in the APIs Console>
client_secret=<the client secret corresponding to the client ID>
redirect_uri=<the URI registered with the client ID>

如果您没有得到refresh_token,可以按照此answer中所述的步骤操作,然后尝试再次获取refresh_token