2017-09-03 10 views
2

URLにhtmlタグを使用するときにテレグラム・インライン・キーボードを使用しようとすると問題が発生しました。テレグラム・インライン・キーボードのエラーを取得します

$var = urlencode("https://api.telegram.org/bot/[email protected]&parse_mode=html&text=\xF0\x9F\x8C\x8D+<b>Hello</b>"); 
$text = "Hi"; 
    $keyboard = [ 
     'inline_keyboard'=>[ 
     [ 
      ['text'=>'Click','url'=>$var] 
     ] 
    ] 
]; 
$keyboard = json_encode($keyboard); 
$url= "https://api.telegram.org/bot".$token."/sendMessage?chat_id=MY_ID&parse_mode=html&reply_markup=".$keyboard."&text=".$text; 

私はBUTTON_URL_INVALIDエラーが発生します。 しかし、すべては、この背後にある理由は何<b>Hello</b>

答えて

0

正確にわからない削除した後OKですが、htmlは、このような状況でparse_modeとして使用することはできませんようです。

Markdownを代わりに使用し、<b>Hello</b>*Hello*に変更してください。

だからあなたの最初の行はに変更されます:あなたはURLを送信する必要が

$var = urlencode("https://api.telegram.org/bot/[email protected]&parse_mode=Markdown&text=\xF0\x9F\x8C\x8D+*Hello*");

+0

本当にありがとうございます。出来た。しかし、私は本当にhtmlが必要です。私はMarkdownに慣れていない。たとえば、私は新しい行を挿入する方法とノンブレークスペース  ;を知りません。 – Ali

0

はJSONをエンコードするので、ちょうどあなたがvar_dump($keyboard)var_dump("to string: $keyboard")ことで、この自分自身を証明することができ"....&reply_markup=" . json_encode($keyboard) . "&text=..."

を使用しています。

+0

ありがとうが、私はまだurlencodeでエラーが発生します。 – Ali

+0

@Ali私の間違い申し訳ありませんが、 'urlencode'ではなく' json_encode'です。私のポストに更新:P – Sean

関連する問題