数字android集成HTTP错误:403禁止,API错误:239,用户消息:重试?

数字android集成HTTP错误:403禁止,API错误:239,用户消息:重试?,android,twitter-digits,Android,Twitter Digits,您好,最近我在android中为登录用户集成了twitter数字,现在以前它工作正常,但现在我不知道发生了什么,但在几次登录后,它显示了这个错误 HTTP错误:403禁止,API错误:239,用户消息:重试 现在有人能告诉我我做错了什么吗还有人能告诉我,在消费者密钥和消费者机密中,我是否必须通过dev.twitter我的应用程序凭据或结构消费者密钥和机密,这件事真的很让人困惑,因为在文档中他们标注了推特键,但在一些堆栈溢出问题上,人们说使用数字键??此外,我没有从应用程序扩展我的活动,这是否会导

您好,最近我在android中为登录用户集成了twitter数字,现在以前它工作正常,但现在我不知道发生了什么,但在几次登录后,它显示了这个错误

HTTP错误:403禁止,API错误:239,用户消息:重试

现在有人能告诉我我做错了什么吗还有人能告诉我,在消费者密钥和消费者机密中,我是否必须通过dev.twitter我的应用程序凭据或结构消费者密钥和机密,这件事真的很让人困惑,因为在文档中他们标注了推特键,但在一些堆栈溢出问题上,人们说使用数字键??此外,我没有从应用程序扩展我的活动,这是否会导致任何问题

我的代码如下,请告诉我我做错了什么,这对我真的很有帮助

public class Signup_firststageActivity extends AppCompatActivity {


private AuthCallback authCallback;

public AuthCallback getAuthCallback(){
     return authCallback;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signup_firststage);
    TextView text = (TextView)findViewById(R.id.text);
    Bundle b = getIntent().getExtras();
    if (b.getString("error") == null) {

} else {
    if (b.getString("error") != null && b.getString("error").equals("server_down")) {
        text.setText("Error 503 Please Try Again");
    } else {

    }
}
//Twitter

TextView tryagain = (TextView)findViewById(R.id.tryagain);
tryagain.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Digits.authenticate(new DigitsAuthConfig.Builder().withAuthCallBack(authCallback).withPhoneNumber("+918972745648").build());
    }
});
final TwitterAuthConfig authConfig =  new TwitterAuthConfig("agfjgD6wetDXdjfjuC4ywwoeD", "BshdjfjfwGz8WLaofkjfjsfjjsjsfhKpv60hQxni60oZwAu");
Fabric.with(getBaseContext(), new TwitterCore(authConfig), new Digits());
authCallback = new AuthCallback() {
    @Override
    public void success(DigitsSession session, String phoneNumber) {
        Log.d("digits", "success phoneNumber: " + phoneNumber);
        Log.d("digits", "session " + session.getPhoneNumber() + " " + session.toString() + " " + session.isValidUser() + " " + session.getAuthToken() + " " + session.getId());
        //    TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig();
        progressDialog = new ProgressDialog(Signup_firststageActivity.this);
        progressDialog.setIndeterminate(true);
        progressDialog.setMessage("Please Wait... ");
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progressDialog.getWindow().setGravity(Gravity.CENTER);
        progressDialog.show();
        TwitterAuthToken authToken = (TwitterAuthToken) session.getAuthToken();

        OAuthSigning oauthSigning = new OAuthSigning(authConfig, authToken);
        Map<String, String> authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials();
        Log.d("digits", "authHeaders: 1" + authHeaders);
        Signup_MobileNumber_requestData(session.getPhoneNumber());
        Digits.getSessionManager().clearActiveSession(); // don't know should i write this here or not ??
    }

    @Override
    public void failure(DigitsException exception) {
        Log.d("digits", "failure");
        // Do something on failure
    }
};

DigitsAuthButton digitsButton = (DigitsAuthButton) findViewById(R.id.auth_button);
digitsButton.setCallback((this).getAuthCallback());
digitsButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Log.d("digits", "button click");

    }
});
公共类注册\u firststageActivity扩展了AppCompative活动{
私有AuthCallback-AuthCallback;
公共AuthCallback getAuthCallback(){
返回authCallback;
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u signup\u firststage);
TextView text=(TextView)findViewById(R.id.text);
Bundle b=getIntent().getExtras();
if(b.getString(“错误”)==null){
}否则{
如果(b.getString(“错误”)!=null和&b.getString(“错误”).equals(“服务器关闭”)){
text.setText(“错误503请重试”);
}否则{
}
}
//推特
TextView-tryagain=(TextView)findViewById(R.id.tryagain);
tryagain.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Digits.authenticate(新的DigitsAuthConfig.Builder().withAuthCallBack(authCallback).withPhoneNumber(“+918972745648”).build());
}
});
final TwitterAuthConfig authConfig=新TwitterAuthConfig(“agfjgd6wetdxdjfjuc4ywhowed”、“bshdjfjfffffwgz8wlaofkjfjsfjjsfhkpv60hqni60ozwau”);
Fabric.with(getBaseContext()、新TwitterCore(authConfig)、新Digits());
authCallback=新的authCallback(){
@凌驾
public void成功(DigitsSession会话,字符串phoneNumber){
Log.d(“数字”,“成功电话号码:”+电话号码);
Log.d(“数字”,“会话”+会话.getPhoneNumber()+“”+会话.toString()+“”+会话.isValidUser()+“”+会话.getAuthToken()+“”+会话.getId());
//TwitterAuthConfig authConfig=TwitterCore.getInstance().getAuthConfig();
progressDialog=新建progressDialog(注册\u firststageActivity.this);
progressDialog.setUndeterminate(true);
progressDialog.setMessage(“请稍候…”);
progressDialog.setProgressStyle(progressDialog.STYLE_微调器);
progressDialog.getWindow().setGravity(Gravity.CENTER);
progressDialog.show();
TwitterAuthToken authToken=(TwitterAuthToken)会话。getAuthToken();
OAuthSigning OAuthSigning=新的OAuthSigning(authConfig,authToken);
Map authHeaders=oauthSigning.GetOAuthChoheaders for VerifyCredentials();
Log.d(“数字”、“authHeaders:1”+authHeaders);
注册\u MobileNumber\u请求数据(session.getPhoneNumber());
Digits.getSessionManager().clearActiveSession();//不知道我应该在这里写还是不写??
}
@凌驾
公共作废失败(DigitException异常){
日志d(“数字”、“故障”);
//失败时做点什么
}
};
DigitAuthButton DigitButton=(DigitAuthButton)findViewById(R.id.auth_按钮);
setCallback((this.getAuthCallback());
digitsButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Log.d(“数字”,“按钮点击”);
}
});
}


提前感谢

此问题是由于密钥和机密而发生的。我试图从Fabric dashboard复制值,但收到了相同的错误


当我从Fabric Android Studio Plugin->Digits->Install->Apply获得值时,它起作用了。我们得到了相同的问题:E/Digits:HTTP错误:403禁止,API错误:239。你也可以从Fabric Dashboard获得Twitter密钥和秘密值。转到Fabric.com,选择app并打开Digits选项卡。你能再解释一下吗?