2017-01-21 37 views
2

私はnode.js経由で写真を送信するのにこの機能を使用していますが、動作しません。 電報-BOT-API https://www.npmjs.com/package/telegram-bot-apiテレグラムnode.js経由でbotPhoto

var telegram = require('telegram-bot-api'); 

var api = new telegram({ 
    token: '<PUT YOUR TOKEN HERE>', 
}); 

api.sendPhoto({ 
    chat_id: <YOUR CHAT ID>, 
    caption: 'This is my test image', 

    // you can also send file_id here as string (as described in telegram bot api documentation) 
    photo: '/path/to/file/test.jpg' 
}) 
.then(function(data) 
{ 
    console.log(util.inspect(data, false, null)); 
}); 

いますが、二つの異なる方法でファイルを送信することができますapi documentation電報ボットで説明したように、私はこのエラーに

fn = function() { throw arg; }; 
         ^
StatusCodeError: 403 - [object Object] 
+1

テレグラムのボットapiを実装するためにノードパッケージを使用していますか? テレグラムボットノードパッケージを使用していない場合、sendPhoto関数には、sendPhoto(userId、photo_url)のような写真URLとともに宛先ユーザIDのようなパラメータを含める必要があります – Sravan

+0

私は電文 - ボットAPIを使用しています このエラーがあります\t fn = function(){throw arg; }; ^ StatusCodeError:403 - [オブジェクトオブジェクト] –

答えて

3

私はこの問題を考え出しました。自分のボットのチャットIDを使用して無効な写真を送信しているようです。したがって、あなたは、ユーザーではない、あなたのボットのユーザーのチャットIDを使用する必要がありますsendPhoto機能を使用するには(telegram bot errors apiを参照してください)

を403禁断のエラーを取得しています。私はあなたのコードを明確にするために、いくつかの変更を加えました。このコードでは、ユーザーのチャットIDがmessage.chatidから可変になります。 このコードでトークンを置き換え、イメージのURLと言い、試してみてください。

PS:このボットにメッセージを送信すると、写真が返されます。

var telegram = require('telegram-bot-api'); 

var api = new telegram({ 
    token: 'Your BOT token', 
    updates: { 
       enabled: true, 
       get_interval: 1000 
      } 
}); 
api.on('message', function(message) 
{ 
    var chat_id = message.chat.id; 
     console.log("This is the user's chat id"+chat_id); 

api.sendPhoto({ 
    chat_id : message.chat.id, 
    caption: 'This is my test image', 
    photo: 'image.jpeg'//replace your image url here 
}) 
.then(function(data) 
{ 
    console.log(data); 
}); 
}); 
+0

これがあなたを助けてくれたかどうかを教えてください@Sedric Heidarizarei – Sravan

+0

素晴らしい....これは本当です。 –

+0

あなたは@セドリック・ヘイダリザレイ – Sravan

1

を持っている:

1-画像をURLで送信する:
あなたは、そのIDを持っている

api.sendPhoto({ 
 
    chat_id: <YOUR CHAT ID>, 
 
    caption: 'image sent by uploading from url', 
 

 
    // first you upload image on a url and send url as a parameter 
 
    photo: 'https://whatbook.org/wp-content/uploads/2015/06/Download-Telegram-App-For-PC-Laptop-Windows-XP-7-8-MAC-OS.png' 
 
}) 
 
.then(function(data) 
 
{ 
 
    console.log(util.inspect(data, false, null)); 
 
});

2 - 以下のようなものがFILE_ID

によって電報サーバにアップロードする各ファイルを画像を送信して、画像のURLへの写真のパラメータを設定する必要がありますこのIDを使用して画像をテレグラムサーバに再アップロードしないようにすることができます。そうすれば、画像ファイルのfile_idを以下のように渡す必要があります。

api.sendPhoto({ 
 
     chat_id: <YOUR CHAT ID>, 
 
     caption: 'the image sent by file_id', 
 

 
     // it is a file_id that you get when someone upload an image to 
 
     photo: 'AgADBAADZbo1G14XZAfdtXnWB5anFpRbYRkABMRWzQmdc4EQbPcCAAEC' 
 
    }) 
 
    .then(function(data) 
 
    { 
 
     console.log(util.inspect(data, false, null)); 
 
    });

+0

telegram.orgのドキュメントをお読みください –

+0

なぜチャットIDが必要ですか?私はボットにショーモンに写真を送ろうとしています。「/スタート」ボタンをクリックしました。 –

+0

ありがとう、私のawnserが上記にあります。 –

関連する問題