codewhiz
codewhiz

Reputation: 195

InlineQueryResultArticle of answerInlineQuery in Telegram Bot API with Google Apps Script

I'm using google apps script for Telegram Bot API & I'm having problem with InlineQueryResultArticle in answerInlineQuery method.

function answerInlineQuery(iqid, result){
  var data = {
        method: "post",
        payload: {
          method: "answerInlineQuery",
          inline_query_id: iqid,
          results:JSON.stringify(result)
        }
}
}

Here is the format of result :-

    var result= {
        InlineQueryResultArticle:[
          {type:'article',id: iqid, title:"RESULT 1", input_message_content:"TEXT 1"},
         {type:'article',id: iqid, title:"RESULT 2", input_message_content:"TEXT 2"}           
        ]
   }; 
answerInlineQuery(iqid, result);

I have turned on Inline Mode in @BotFather. My bot is also receiving inline queries and for every request I can see my inline query id properly & I can also see the result receiving as [object Object]. But, the problem is I'm not getting any results.

REF: In answerinlinequery, the results should be a JSON-serialized array of results for the inline query using any of these results.

Can anyone point out where am I going wrong ?

Upvotes: 0

Views: 5743

Answers (2)

team meryb
team meryb

Reputation: 113

After many attempts I found solution:

Here there are an inline answer with three results

****Be careful :change value of document_file_id with a sample file_id from your bot else you will see an error

//your bot token placed here
const token = "";
tgmsg('answerInlineQuery', {

    "inline_query_id": update['inline_query']['id'],
    "results": JSON.stringify([
        //inline result of an article with thumbnail photo
        {
            "type": "article",
            "id": "1",
            "title": "chek inline keybord ",
            "description": "test ",
            "caption": "caption",
            "input_message_content": {
                "message_text": "you can share inline keyboard to other chat"
            },

            "thumb_url": "https://avatars2.githubusercontent.com/u/10547598?v=3&s=88"
        },
        //inline result of an article with inline keyboard
        {
            id: "nchfjdfgd",
            title: 'title',
            description: "description",
            type: 'article',
            input_message_content: {
                message_text: "inline is enabled input_message_content: {message_text: message_text}message_text"
            },
            reply_markup: {
                "inline_keyboard": [
                    [{
                        "text": "InlineFeatures.",
                        "callback_data": "inline_plugs_1118095942"
                    }],
                    [{
                        "text": "OtherFeatures.",
                        "callback_data": "other_plugs_1118095942"
                    }]
                ]
            }
        },

        //inline result of a cached telegram document with inline keyboard
        {
            id: "nchgffjdfgd",
            title: 'title',
            description: "description",
            //change this on with the value of file_id from telegram bot api 
            document_file_id: "BQACAgQAAxkBAAIBX2CPrD3yFC0X1sI0HFTxgul0GdqhAALjDwACR4pxUKIV48XlktQNHwQ",
            type: 'document',
            caption: "caption ghh hhdd",
            reply_markup: {
                "inline_keyboard": [
                    [{
                        "text": "InlineFeatures.",
                        "callback_data": "inline_plugs_1118095942"
                    }],
                    [{
                        "text": "OtherFeatures.",
                        "callback_data": "other_plugs_1118095942"
                    }]
                ]
            }

        }
    ])
})

function tgmsg(method, data) {
    var options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(data)
    };
    var responselk = UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/' + method, options);
}

Upvotes: 0

Maak
Maak

Reputation: 5038

The id field for a InlineQueryResultArticle must be unique for each result. However you are setting the id as iqid for both results.

You should replace them with custom ids.

 var result= {
    InlineQueryResultArticle:[
       {type:'article',id: "1", title:"RESULT 1", input_message_content:"TEXT 1"},
       {type:'article',id: "2", title:"RESULT 2", input_message_content:"TEXT 2"}           
    ]
}; 

Upvotes: 1

Related Questions