Google-plus:无法加载人员

use*_*779 7 android google-plus

我想在我的应用程序中登录Google Plus.我可以连接但无法获取当前用户的个人资料信息

@Override
public void onConnected() {

    String accountName = mPlusClient.getAccountName();

    mPlusClient.loadPerson(this, "me");
}

@Override
public void onPersonLoaded(ConnectionResult status, Person person) {

    Log.d("onPersonLoaded - ConnectionResult", "" + status);
    Log.d("onPersonLoaded - person", "" + person);
    if (status.getErrorCode() == ConnectionResult.SUCCESS) {
        Log.d(TAG, "Display Name: " + person.getDisplayName());
    }
}
Run Code Online (Sandbox Code Playgroud)

我能得到帐户名onConnected,但onPersonLoadednullperson

日志显示:

onPersonLoaded - ConnectionResult(29861): ConnectionResult{statusCode=NETWORK_ERROR, resolution=null}
onPersonLoaded - person(29861): null
Run Code Online (Sandbox Code Playgroud)

来自这里的文档

public static final int NETWORK_ERROR

发生网络错误.重试应解决问题.

常数值:7(0x00000007)

但无论我重试多少次,我都会得到同样的错误.这些是我使用的权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题并且一直在搜索过去2个小时.非常感谢任何帮助,谢谢.

Sha*_*wat 13

最后我找到了答案.:)

loadPerson()并且loadPeople()只会在使用有效密钥签名的导出APK中返回预期数据.在这里有效我的意思是它应该与SHAI和您的API密钥控制台的其他规范相匹配.

在下面的示例代码中,您可能会错过的另一件事是在PlusClient构造函数中定义范围,例如

mPlusClient = new PlusClient.Builder(this, this, this).setScopes(Scopes.PLUS_LOGIN)
                .setVisibleActivities("http://schemas.google.com/AddActivity").build();
Run Code Online (Sandbox Code Playgroud)