为什么谷歌+;集成不适用于我的Android应用程序?
我下载了最新版本的为什么谷歌+;集成不适用于我的Android应用程序?,android,google-plus,google-play-services,Android,Google Plus,Google Play Services,我下载了最新版本的GooglePlayServices,并包含在我的应用程序中。我生成了调试密钥的SHA1指纹,并在谷歌API控制台中设置它们。我那里只有一个应用程序 我像这样使用Google Plus: googlePlusClient = new PlusClient.Builder(getActivity(), new GooglePlayServicesClient.ConnectionCallbacks() { @Override public void
GooglePlayServices
,并包含在我的应用程序中。我生成了调试密钥的SHA1指纹,并在谷歌API控制台中设置它们。我那里只有一个应用程序
我像这样使用Google Plus:
googlePlusClient = new PlusClient.Builder(getActivity(), new GooglePlayServicesClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
googlePlusClient.loadPeople(new PlusClient.OnPeopleLoadedListener() {
@Override
public void onPeopleLoaded(ConnectionResult connectionResult, PersonBuffer persons, String s) {
if(connectionResult.isSuccess()) {
ArrayList<String> result = new ArrayList<String>();
for(Person person : persons) {
result.add(person.getId());
}
// Some actions with the data
}
}
}, "me");
}
@Override
public void onDisconnected() {
}
}, new GooglePlayServicesClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
if(connectionResult.hasResolution()) {
try {
connectionResult.startResolutionForResult(getActivity(), REQUEST_GOOGLE_AUTH);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}
}
}).setScopes(Scopes.PLUS_PROFILE).build();
googlePlusClient.connect();
我仍然得到403错误。以下是这方面的日志:
E/Volley﹕ [907] ot.a: Unexpected response code 403 for https://www.googleapis.com/plus/v1/people/me
D/GooglePlusPlatform﹕ Unexpected response code (403) when requesting: getPerson
I/GooglePlusPlatform﹕ {"code":403,"errors":[{"message":"Access Not Configured","domain":"usageLimits","reason":"accessNotConfigured"}]}
我做错了什么?好吧,我找到了解决办法。我不知道为什么,但我调试密钥的指纹是错误的。我用这个代码得到它们。希望这对其他人有帮助
PackageInfo packageInfo = null;
try {
packageInfo = getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Signature[] signatures = packageInfo.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = null;
try {
cf = CertificateFactory.getInstance("X509");
} catch (CertificateException e) {
e.printStackTrace();
}
X509Certificate c = null;
try {
c = (X509Certificate) cf.generateCertificate(input);
} catch (CertificateException e) {
e.printStackTrace();
}
try {
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(c.getPublicKey().getEncoded());
StringBuffer hexString = new StringBuffer();
for (int i=0;i<publicKey.length;i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i]);
if(appendString.length()==1)hexString.append("0");
hexString.append(appendString);
}
Log.d("SHA1", "Cer: " + hexString.toString());
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
}
PackageInfo-PackageInfo=null;
试一试{
packageInfo=getContext().getPackageManager().getPackageInfo(getContext().getPackageName(),PackageManager.GET_签名);
}捕获(PackageManager.NameNotFounde异常){
e、 printStackTrace();
}
签名[]签名=packageInfo.signatures;
字节[]证书=签名[0]。toByteArray();
InputStream输入=新的ByteArrayInputStream(证书);
CertificateFactory cf=null;
试一试{
cf=CertificateFactory.getInstance(“X509”);
}捕获(证书例外e){
e、 printStackTrace();
}
X509证书c=null;
试一试{
c=(X509Certificate)cf.generateCertificate(输入);
}捕获(证书例外e){
e、 printStackTrace();
}
试一试{
MessageDigest md=MessageDigest.getInstance(“SHA1”);
字节[]publicKey=md.digest(c.getPublicKey().getEncoded());
StringBuffer hexString=新的StringBuffer();
对于(int i=0;i
PackageInfo packageInfo = null;
try {
packageInfo = getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Signature[] signatures = packageInfo.signatures;
byte[] cert = signatures[0].toByteArray();
InputStream input = new ByteArrayInputStream(cert);
CertificateFactory cf = null;
try {
cf = CertificateFactory.getInstance("X509");
} catch (CertificateException e) {
e.printStackTrace();
}
X509Certificate c = null;
try {
c = (X509Certificate) cf.generateCertificate(input);
} catch (CertificateException e) {
e.printStackTrace();
}
try {
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(c.getPublicKey().getEncoded());
StringBuffer hexString = new StringBuffer();
for (int i=0;i<publicKey.length;i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i]);
if(appendString.length()==1)hexString.append("0");
hexString.append(appendString);
}
Log.d("SHA1", "Cer: " + hexString.toString());
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
}