Truecaller android sdk Код ошибки 3
Я пытаюсь реализовать Truecaller android-SDK для входа/регистрации в одном из моих личных приложений. Я получил ключ партнера от truecaller, чтобы реализовать его в своем приложении. Ошибка при нажатии "Автозаполнение с помощью truecaller" возвращает "Код ошибки 3" в "trueError.getErrorType()" в "public void onFailureProfileShared()". Кажется, я не могу найти способ описания ошибки.
Кто-нибудь знает, чтобы исправить эту ошибку?
Моя реализация:
public class auth extends AppCompatActivity implements ITrueCallback{
private TrueButton truebutton = null;
private TrueClient trueClient = null;
private String mTruecallerRequestNonce = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auth);
truebutton = (TrueButton) findViewById(R.id.com_truecaller_android_sdk_truebutton);
boolean isUsable = truebutton.isUsable();
if(isUsable) {
trueClient = new TrueClient(auth.this, auth.this);
truebutton.setTrueClient(trueClient);
}
else {
truebutton.setVisibility(View.GONE);
}
truebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
trueClient.getTruecallerUserProfile(auth.this);
}
});
}
@Override
protected void onResume() {
mTruecallerRequestNonce = trueClient.generateRequestNonce();
super.onResume();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(trueClient!=null && trueClient.onActivityResult(requestCode, resultCode, data)) {
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onSuccesProfileShared(@NonNull TrueProfile trueProfile) {
Toast.makeText(auth.this, trueProfile.firstName + " " + trueProfile.lastName, Toast.LENGTH_LONG).show();
}
@Override
public void onFailureProfileShared(@NonNull TrueError trueError) {
Log.e("error code", trueError.getErrorType() + " ");
}
}
Ответы
Ответ 1
Наконец-то он работал с помощью. Спасибо @Sayan за то, что он взял меня на один шаг ближе и @qualverse понял "коды ошибок".
Truecaller требует от вас SHA1 и предоставит вам PartnerKey. Я понял, что это не имеет значения, если ваше приложение релиз или отладка. Если PartnerKey сгенерирован с помощью отладки SHA1, тогда вы должны создать приложение с вариантом отладки, а если PartnerKey сгенерирован с выпущенным SHA1, тогда создайте приложение с выпущенный вариант.
Ниже снимок экрана поможет понять тип ключа:
![введите описание изображения здесь]()
Можно сделать записи для обоих вариантов на панели инструментов Truecaller для одновременной работы с обоими вариантами. Всегда убедитесь, что вы правильно подписали вариант выпуска.
Ответ 2
Вот список всех кодов ошибок TrueCaller:
ERROR_TYPE_INTERNAL = 0;
ERROR_TYPE_NETWORK = 1;
ERROR_TYPE_USER_DENIED = 2;
ERROR_TYPE_UNAUTHORIZED_PARTNER = 3;
ERROR_TYPE_UNAUTHORIZED_USER = 4;
ERROR_TYPE_TRUECALLER_CLOSED_UNEXPECTEDLY = 5;
ERROR_TYPE_TRUESDK_TOO_OLD = 6;
ERROR_TYPE_POSSIBLE_REQ_CODE_COLLISION = 7;
ERROR_TYPE_RESPONSE_SIGNATURE_MISSMATCH = 8;
ERROR_TYPE_REQUEST_NONCE_MISSMATCH = 9;
Эти коды являются статическими членами класса TrueError
, поэтому вы можете обращаться к ним следующим образом:
switch (trueError.getErrorType()) {
case TrueError.ERROR_TYPE_INTERNAL:
// do something
break;
case TrueError.ERROR_TYPE_NETWORK:
// do something else
break;
// etc.
}
В вашем случае ошибка, которую вы получаете, это код ошибки 3, ERROR_TYPE_UNAUTHORIZED_PARTNER
. Убедитесь, что вы получили ключ партнера и добавили эту строку в свой AndroidManifest.xml
?
<meta-data android:name="com.truecaller.android.sdk.PartnerKey" android:value="YOUR_PARTNER_KEY_HERE"/>
Ответ 3
измените версию debug debug для выпуска, и PartnerKey сгенерирован с выпущенным SHA1, затем создайте приложение.
Я сталкиваюсь с одинаковой проблемой, каждый раз получая код ошибки 3.
Измените debug, чтобы освободить решение моей проблемы.