2016-05-12 14 views
3

アプリでは、ユーザーの連絡先をインポートする必要があります。 Telegram APIを実装しているのはTelegram.Linkです。連絡先を取得するメソッドがあります。 1つの連絡先を以下に示します:電報の連絡先の写真を見直す方法は?

{ 
T: api.type.UserContact, 
id: 148049613, 
first_name: "M.", 
last_name: "Barezban", 
username: "Barezban", 
access_hash: "0x47ad17f617b9e945", 
phone: "989363356056", 
photo: { 
    T: api.type.UserProfilePhoto, 
    photo_id: "0x08d30ecd1b31a7bc", 
    photo_small: { 
    T: api.type.FileLocation, 
    dc_id: 4, 
    volume_id: "0x00000000192931a8", 
    local_id: 75848, 
    secret: "0xac6db13d308318b3" 
    }, 
    photo_big: { 
    T: api.type.FileLocation, 
    dc_id: 4, 
    volume_id: "0x00000000192931a8", 
    local_id: 75850, 
    secret: "0x4f302deb78247cce" 
    } 
}, 
status: { 
    T: api.type.UserStatusOffline, 
    was_online: 1463043346 
}} 

プロフィール写真をダウンロードする方法が見つかりませんでした。どの方法を使用すべきですか?

テレグラムのボットAPIを実装したpython-telegram-botを試しましたが、getUserProfilePhotosgetFileという2つの方法があります。

bot.getUserProfilePhotos(148049613)を試しましたが、telegram.error.NetworkError: Bad Request: user not found (400)を取得しました。

私もbot.getFile('0x08d30ecd1b31a7bc')を試してみましたが、telegram.error.NetworkError: Bad Request: invalid file id (400)

volume_id、local_idと秘密を使用していますが、私はこの方法を使用して呼び出す方法を知りませんupload.getFileというメソッドもありです。

どのようにしてこの写真をダウンロードできますか?電報のAPIで

答えて

0

ファイルのダウンロードを介して行われます:

upload.getFile#e3a6cfb5 location:InputFileLocation offset:int limit:int = upload.File; 

は、これらのAPIの種類のいくつかはそこ(look here for the latest)時代遅れですが、どのようにの要旨upload.getFileなどhttps://core.telegram.org/api/files#downloading-files

NOTEを参照してください。ファイルのダウンロード作業がそこに説明されています。

あなたに必要なものはすべてあります。ほとんどの場合、upload.getFile(最大512Kb)への1回のコールでプロフィール画像をダウンロードできます。上記のlinkは明確な詳細を示します。

1)についてはInputFileLocation使用

api.type.FileLocation{ 
    dc_id: 4, 
    volume_id: "0x00000000192931a8", 
    local_id: 75850, 
    secret: "0x4f302deb78247cce"} 

2)について使用オフセット:0

3)制限の場合を使用:あなたが送信する必要が0

注意これは適切な接続からです。この場合、dc_id = 4への接続は、

{error_code: 303, error_message: "USER_MIGRATE_4"/"FILE_MIGRATE_4"} 
+0

回答ありがとうございます。 Pythonや流星(Node.js)でこのメソッドの実装を知っていますか? – omid

+0

@omid申し訳ありませんが、私はあまりPythonをコーディングしません。これはあなたのtelegram.linkに含まれていませんか? GitHubリポジトリを拡張してこれを行うことができます。はい? –

関連する問題