为什么在电报中调用auth.signIn时会收到PHONE_NUMBER_UNOCCUPIED错误?

时间:2016-08-30 19:58:51

标签: python api telegram

我已经到了发送cores = detectCores() - 1 cl = makeCluster(cores) result = parSapply(cl,1:10, function(x){print('haha'); return(x)}) 方法的地步,并得到以下回复:

auth.sendCode

这是使用电报测试服务器。我已成功在电报iPhone应用程序和桌面应用程序中使用相同的电话号码,因此我知道电话号码在生产中有效。 (它是否也应该在测试服务器上有效?)

当我跟('sentCode: ', {u'req_msg_id': 6324698204597889024L, u'result': {u'type': {u'len gth': 5}, u'phone_registered': False, u'flags': 6, u'timeout': 120, u'next_type' : {}, u'phone_code_hash': '52eb4ab096ea211b52'}}) auth.sendCode时,我收到以下错误回复:

auth.signIn

这两种方法之间是否有注册电话号码的步骤?

3 个答案:

答案 0 :(得分:1)

来自https://core.telegram.org/api/auth

  

auth.sendCode方法也将返回phone_registered字段,   表示具有此电话号码的用户是否是   在系统中注册。如果phone_registered == boolTrue,   授权要求调用auth.signIn。否则,基本的   必须从用户和新用户请求信息   必须调用注册方法(auth.signUp)。

     

当phone_registered === boolFalse时,auth.signIn方法可以   用于预验证从短信输入的代码。代码   如果方法返回错误400,则输入正确   PHONE_NUMBER_UNOCCUPIED。

答案 1 :(得分:1)

如果确定您的电话已注册,则此错误的原因也可能是错误的/不完整的TdLibParameters。我的android项目就是这种情况。我最终得到了下面的列表,该列表有效:

    parameters.useTestDc = false
    parameters.databaseDirectory = appFolder
    parameters.filesDirectory = appFolder
    parameters.useFileDatabase = false
    parameters.useChatInfoDatabase = false
    parameters.useMessageDatabase = false
    parameters.useSecretChats = false
    parameters.apiId = 1111
    parameters.apiHash = "1111"
    parameters.systemLanguageCode = Locale.getDefault().isO3Language
    parameters.deviceModel = Build.MODEL
    parameters.systemVersion = Build.VERSION.RELEASE.toString()
    parameters.applicationVersion = "0.1"
    parameters.enableStorageOptimizer = true
    parameters.ignoreFileNames = true

答案 2 :(得分:0)

看看this page。因此,生产电话注册不适用于test_dc。

根据该页面上的图片:

  

使用“ auth.signUp”代替“ auth.signIn”