2016-08-30 9 views
1

私は、次の応答で、auth.sendCode送信方法のポイントに得ている:テレグラムでauth.signInを呼び出すと、なぜPHONE_NUMBER_UNOCCUPIEDエラーが発生しますか?

('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'}}) 

これは電報のテストサーバを使用しています。テレグラムのiPhoneアプリとデスクトップアプリケーションで同じ電話番号を使用していたので、電話番号は本番で有効です。 (それは同様に、テストサーバー上で有効である必要があり?)

私は、次のエラーレスポンス受信auth.signInauth.sendCodeに従ってください:

('authorization: ', {u'error_message': 'PHONE_NUMBER_UNOCCUPIED', u'error_code': 
400}) 

を電話番号を登録するこれらの2つの方法の間に段差があります?

+0

'auth.sendCode'を送信した後、電文からコードを受け取りますか? –

+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を返した場合、正しく入力されました。

+0

ユーザーが認証されると、クライアントプログラムを起動するたびにユーザーが新しいコードを入力する必要がないように、その認証をどのように保存しますか? –

+1

セッションと塩を再利用する - これは新しい質問です、はい? –

+0

これはどのようにして一般的に達成されますか?セッションデータをファイルに書き込んだ後、クライアントの起動時にセッションデータを読み込みますか? –

関連する問題