结果不同

时间:2018-02-22 12:33:11

标签: google-api google-api-java-client google-people

我试图提取谷歌联系人信息(照片,性别等),我们使用Google People API来做到这一点。

我在createContact服务中使用电子邮件搜索联系人。

我创建了一个客户端ID和客户端密钥,使用简单的oAuth2.0代码,我得到了一个刷新令牌,我的服务器用它来生成凭证。

    HttpTransport httpTransport = new NetHttpTransport();
    JacksonFactory jsonFactory = new JacksonFactory();

    String clientId = "";
    String clientSecret = "";
    String scope = "https://www.googleapis.com/auth/contacts";

    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            httpTransport, jsonFactory, clientId, clientSecret,
            Arrays.asList(scope))
            .setAccessType("offline")
            .setApprovalPrompt("force")
            .build();

    LocalServerReceiver localReceiver = new LocalServerReceiver.Builder().setPort(8089).build();

    Credential credential = new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user");

通过这种方式,我获得了refreshToken并将其保存在安全文件中。 之后,我的应用程序连接到谷歌并从该文件获取clientId,ClientToken和RefreshToken并尝试连接 -

GoogleCredential googleCredential = new GoogleCredential.Builder()
            .setJsonFactory(jsonFactory)
            .setTransport(transport)
            .setClientSecrets(googlePeopleKey.getClientId(), googlePeopleKey.getClientSecret())
            .build().setRefreshToken(googlePeopleKey.getRefreshToken());

似乎每个用户的结果不同。当我使用我的用户之前进行身份验证的刷新代码进行操作时,我无法获得公司中其他用户(以相同方式授权)的所有信息。今天,它翻转了,在另一个测试中,我得到了他没有的结果。很奇怪。

我正在查看限制率,但似乎我甚至没有接近限制。

您是否知道为什么它会为不同的用户返回不同的结果?不同的结果意味着有时其中一个用户可以看到个人资料图片,但另一个用户无法看到。

谢谢!

0 个答案:

没有答案