[{"data":1,"prerenderedAt":712},["ShallowReactive",2],{"h257092508":3,"h2450794289":428,"h2394770908":707},{"id":4,"title":5,"body":6,"description":28,"extension":420,"meta":421,"navigation":261,"path":424,"seo":425,"stem":426,"__hash__":427},"docs\u002Fen\u002Ftips\u002F2026\u002F06\u002F04\u002Fmessaging-api-sdk.md","Let's make use of the Messaging API SDK sample code",{"type":7,"value":8,"toc":406},"minimark",[9],[10,11,12,20,25,29,32,35,38,43,55,149,153,156,159,163,176,179,389,393,396,400],"Tips",{},[13,14,17],"h1",{"id":15,"class":16},"","!mb-4",[18,19],"page-title",{},[21,22],"display-date",{"date":23,"class":24},"2026\u002F06\u002F04","!mb-20",[26,27,28],"p",{},"Hello! I'm Zenigami, a technical writer. When using the Messaging API SDKs provided by LY Corporation, have you ever wondered, \"How do I actually translate these specifications into real code?\"",[26,30,31],{},"One of the best ways to solve this problem is to check out the SDK's sample code.",[26,33,34],{},"In this article, I'll introduce where to find the SDK sample code, the benefits of leveraging it, and walk through a portion of the sample code for the Ruby version.",[36,37],"toc",{},[39,40,42],"h2",{"id":41},"sample-code","SDK sample code for each language",[26,44,45,46,50,51,54],{},"The Messaging API SDKs for various languages are all open-sourced and available on GitHub. Inside the ",[47,48,49],"code",{},"examples"," (or ",[47,52,53],{},"samples",") directory of each repository, you can find sample code that is ready to run.",[56,57,58,71],"table",{},[59,60,61],"thead",{},[62,63,64,68],"tr",{},[65,66,67],"th",{},"Language",[65,69,70],{},"Sample Code URL",[72,73,74,89,101,113,125,137],"tbody",{},[62,75,76,80],{},[77,78,79],"td",{},"Java",[77,81,82],{},[83,84,88],"a",{"href":85,"rel":86},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-java\u002Ftree\u002Fmaster\u002Fsamples",[87],"nofollow","line-bot-sdk-java\u002Fsamples",[62,90,91,94],{},[77,92,93],{},"Python",[77,95,96],{},[83,97,100],{"href":98,"rel":99},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-python\u002Ftree\u002Fmaster\u002Fexamples",[87],"line-bot-sdk-python\u002Fexamples",[62,102,103,106],{},[77,104,105],{},"Node.js",[77,107,108],{},[83,109,112],{"href":110,"rel":111},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-nodejs\u002Ftree\u002Fmaster\u002Fexamples",[87],"line-bot-sdk-nodejs\u002Fexamples",[62,114,115,118],{},[77,116,117],{},"Go",[77,119,120],{},[83,121,124],{"href":122,"rel":123},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-go\u002Ftree\u002Fmaster\u002Fexamples",[87],"line-bot-sdk-go\u002Fexamples",[62,126,127,130],{},[77,128,129],{},"PHP",[77,131,132],{},[83,133,136],{"href":134,"rel":135},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-php\u002Ftree\u002Fmaster\u002Fexamples",[87],"line-bot-sdk-php\u002Fexamples",[62,138,139,142],{},[77,140,141],{},"Ruby",[77,143,144],{},[83,145,148],{"href":146,"rel":147},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-ruby\u002Ftree\u002Fmaster\u002Fexamples",[87],"line-bot-sdk-ruby\u002Fexamples",[39,150,152],{"id":151},"merit","Benefits of leveraging sample code",[26,154,155],{},"The sample code includes fundamental implementations such as signature verification, Webhook handling, and error handling, giving you a solid base to build your development upon.",[26,157,158],{},"Additionally, it demonstrates how to utilize various Messaging API features such as sending push messages or reply messages. This makes the sample code incredibly valuable as a reference during your development process.",[39,160,162],{"id":161},"example","Example: Sending a push message with the Ruby SDK",[26,164,165,166,169,170,175],{},"As a quick guide on how to read the sample code, let's take a look at how to send a push message using the Ruby SDK. The sample code for the Ruby SDK is located in ",[83,167,148],{"href":146,"rel":168},[87],". Within this directory, ",[83,171,174],{"href":172,"rel":173},"https:\u002F\u002Fgithub.com\u002Fline\u002Fline-bot-sdk-ruby\u002Ftree\u002Fmaster\u002Fexamples\u002Fv2\u002Fkitchensink",[87],"v2\u002Fkitchensink"," showcases code for a wide variety of features.",[26,177,178],{},"By exploring the sample code, you can easily see that sending a push message to a user is implemented like this:",[180,181,185],"pre",{"className":182,"code":183,"language":184,"meta":15,"style":15},"language-ruby shiki shiki-themes github-dark-default","client = Line::Bot::V2::MessagingApi::ApiClient.new(channel_access_token: ENV.fetch(\"LINE_CHANNEL_ACCESS_TOKEN\"))\n\npush_request = Line::Bot::V2::MessagingApi::PushMessageRequest.new(\n  to: \"User ID\",\n  messages: [\n    Line::Bot::V2::MessagingApi::TextMessage.new(text: \"Hello, world!\")\n  ]\n)\n\nclient.push_message(push_message_request: push_request)\n","ruby",[47,186,187,256,263,297,309,318,356,362,367,372],{"__ignoreMap":15},[188,189,192,196,200,204,208,211,213,216,218,221,223,226,229,232,235,238,241,243,247,249,253],"span",{"class":190,"line":191},"line",1,[188,193,195],{"class":194},"sQhOw","client",[188,197,199],{"class":198},"suJrU"," =",[188,201,203],{"class":202},"sFSAA"," Line",[188,205,207],{"class":206},"sZEs4","::",[188,209,210],{"class":202},"Bot",[188,212,207],{"class":206},[188,214,215],{"class":202},"V2",[188,217,207],{"class":206},[188,219,220],{"class":202},"MessagingApi",[188,222,207],{"class":206},[188,224,225],{"class":202},"ApiClient",[188,227,228],{"class":206},".",[188,230,231],{"class":198},"new",[188,233,234],{"class":206},"(",[188,236,237],{"class":202},"channel_access_token:",[188,239,240],{"class":202}," ENV",[188,242,228],{"class":206},[188,244,246],{"class":245},"sc3cj","fetch",[188,248,234],{"class":206},[188,250,252],{"class":251},"s9uIt","\"LINE_CHANNEL_ACCESS_TOKEN\"",[188,254,255],{"class":206},"))\n",[188,257,259],{"class":190,"line":258},2,[188,260,262],{"emptyLinePlaceholder":261},true,"\n",[188,264,266,269,271,273,275,277,279,281,283,285,287,290,292,294],{"class":190,"line":265},3,[188,267,268],{"class":194},"push_request",[188,270,199],{"class":198},[188,272,203],{"class":202},[188,274,207],{"class":206},[188,276,210],{"class":202},[188,278,207],{"class":206},[188,280,215],{"class":202},[188,282,207],{"class":206},[188,284,220],{"class":202},[188,286,207],{"class":206},[188,288,289],{"class":202},"PushMessageRequest",[188,291,228],{"class":206},[188,293,231],{"class":198},[188,295,296],{"class":206},"(\n",[188,298,300,303,306],{"class":190,"line":299},4,[188,301,302],{"class":202},"  to:",[188,304,305],{"class":251}," \"User ID\"",[188,307,308],{"class":206},",\n",[188,310,312,315],{"class":190,"line":311},5,[188,313,314],{"class":202},"  messages:",[188,316,317],{"class":206}," [\n",[188,319,321,324,326,328,330,332,334,336,338,341,343,345,347,350,353],{"class":190,"line":320},6,[188,322,323],{"class":202},"    Line",[188,325,207],{"class":206},[188,327,210],{"class":202},[188,329,207],{"class":206},[188,331,215],{"class":202},[188,333,207],{"class":206},[188,335,220],{"class":202},[188,337,207],{"class":206},[188,339,340],{"class":202},"TextMessage",[188,342,228],{"class":206},[188,344,231],{"class":198},[188,346,234],{"class":206},[188,348,349],{"class":202},"text:",[188,351,352],{"class":251}," \"Hello, world!\"",[188,354,355],{"class":206},")\n",[188,357,359],{"class":190,"line":358},7,[188,360,361],{"class":206},"  ]\n",[188,363,365],{"class":190,"line":364},8,[188,366,355],{"class":206},[188,368,370],{"class":190,"line":369},9,[188,371,262],{"emptyLinePlaceholder":261},[188,373,375,378,381,383,386],{"class":190,"line":374},10,[188,376,377],{"class":206},"client.",[188,379,380],{"class":245},"push_message",[188,382,234],{"class":206},[188,384,385],{"class":202},"push_message_request:",[188,387,388],{"class":206}," push_request)\n",[39,390,392],{"id":391},"conclusion","Conclusion",[26,394,395],{},"If you ever find yourself stuck while working with a Messaging API SDK, taking a look at the sample code for your language might just point you toward the solution. I hope this article helps pave the way for a fun and smooth development experience!",[397,398,399],"style",{},"html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",[401,402],"tags",{"tags":403,"lang":404,"section":405},"messaging-api, line-developers-site","en","tips",{"title":15,"searchDepth":299,"depth":299,"links":407},[408,411,414,417],{"id":409,"depth":258,"text":410},"sdk-sample-code-for-each-language-sample-code","SDK sample code for each language {#sample-code}",{"id":412,"depth":258,"text":413},"benefits-of-leveraging-sample-code-merit","Benefits of leveraging sample code {#merit}",{"id":415,"depth":258,"text":416},"example-sending-a-push-message-with-the-ruby-sdk-example","Example: Sending a push message with the Ruby SDK {#example}",{"id":418,"depth":258,"text":419},"conclusion-conclusion","Conclusion {#conclusion}","md",{"date":422,"tags":403,"locale":404,"sidebar":423},"2026-06-04 00:00 UTC",false,"\u002Fen\u002Ftips\u002F2026\u002F06\u002F04\u002Fmessaging-api-sdk",{"title":5,"description":28},"en\u002Ftips\u002F2026\u002F06\u002F04\u002Fmessaging-api-sdk","B-zx2xMbKIFOr6cc51WJmJRMUmzPUGuSds0w4PsBQ4s",{"id":4,"title":5,"body":429,"description":28,"extension":420,"meta":705,"navigation":261,"path":424,"seo":706,"stem":426,"__hash__":427},{"type":7,"value":430,"toc":699},[431],[10,432,433,437,439,441,443,445,447,449,455,521,523,525,527,529,537,539,691,693,695,697],{},[13,434,435],{"id":15,"class":16},[18,436],{},[21,438],{"date":23,"class":24},[26,440,28],{},[26,442,31],{},[26,444,34],{},[36,446],{},[39,448,42],{"id":41},[26,450,45,451,50,453,54],{},[47,452,49],{},[47,454,53],{},[56,456,457,465],{},[59,458,459],{},[62,460,461,463],{},[65,462,67],{},[65,464,70],{},[72,466,467,476,485,494,503,512],{},[62,468,469,471],{},[77,470,79],{},[77,472,473],{},[83,474,88],{"href":85,"rel":475},[87],[62,477,478,480],{},[77,479,93],{},[77,481,482],{},[83,483,100],{"href":98,"rel":484},[87],[62,486,487,489],{},[77,488,105],{},[77,490,491],{},[83,492,112],{"href":110,"rel":493},[87],[62,495,496,498],{},[77,497,117],{},[77,499,500],{},[83,501,124],{"href":122,"rel":502},[87],[62,504,505,507],{},[77,506,129],{},[77,508,509],{},[83,510,136],{"href":134,"rel":511},[87],[62,513,514,516],{},[77,515,141],{},[77,517,518],{},[83,519,148],{"href":146,"rel":520},[87],[39,522,152],{"id":151},[26,524,155],{},[26,526,158],{},[39,528,162],{"id":161},[26,530,165,531,169,534,175],{},[83,532,148],{"href":146,"rel":533},[87],[83,535,174],{"href":172,"rel":536},[87],[26,538,178],{},[180,540,541],{"className":182,"code":183,"language":184,"meta":15,"style":15},[47,542,543,587,591,621,629,635,667,671,675,679],{"__ignoreMap":15},[188,544,545,547,549,551,553,555,557,559,561,563,565,567,569,571,573,575,577,579,581,583,585],{"class":190,"line":191},[188,546,195],{"class":194},[188,548,199],{"class":198},[188,550,203],{"class":202},[188,552,207],{"class":206},[188,554,210],{"class":202},[188,556,207],{"class":206},[188,558,215],{"class":202},[188,560,207],{"class":206},[188,562,220],{"class":202},[188,564,207],{"class":206},[188,566,225],{"class":202},[188,568,228],{"class":206},[188,570,231],{"class":198},[188,572,234],{"class":206},[188,574,237],{"class":202},[188,576,240],{"class":202},[188,578,228],{"class":206},[188,580,246],{"class":245},[188,582,234],{"class":206},[188,584,252],{"class":251},[188,586,255],{"class":206},[188,588,589],{"class":190,"line":258},[188,590,262],{"emptyLinePlaceholder":261},[188,592,593,595,597,599,601,603,605,607,609,611,613,615,617,619],{"class":190,"line":265},[188,594,268],{"class":194},[188,596,199],{"class":198},[188,598,203],{"class":202},[188,600,207],{"class":206},[188,602,210],{"class":202},[188,604,207],{"class":206},[188,606,215],{"class":202},[188,608,207],{"class":206},[188,610,220],{"class":202},[188,612,207],{"class":206},[188,614,289],{"class":202},[188,616,228],{"class":206},[188,618,231],{"class":198},[188,620,296],{"class":206},[188,622,623,625,627],{"class":190,"line":299},[188,624,302],{"class":202},[188,626,305],{"class":251},[188,628,308],{"class":206},[188,630,631,633],{"class":190,"line":311},[188,632,314],{"class":202},[188,634,317],{"class":206},[188,636,637,639,641,643,645,647,649,651,653,655,657,659,661,663,665],{"class":190,"line":320},[188,638,323],{"class":202},[188,640,207],{"class":206},[188,642,210],{"class":202},[188,644,207],{"class":206},[188,646,215],{"class":202},[188,648,207],{"class":206},[188,650,220],{"class":202},[188,652,207],{"class":206},[188,654,340],{"class":202},[188,656,228],{"class":206},[188,658,231],{"class":198},[188,660,234],{"class":206},[188,662,349],{"class":202},[188,664,352],{"class":251},[188,666,355],{"class":206},[188,668,669],{"class":190,"line":358},[188,670,361],{"class":206},[188,672,673],{"class":190,"line":364},[188,674,355],{"class":206},[188,676,677],{"class":190,"line":369},[188,678,262],{"emptyLinePlaceholder":261},[188,680,681,683,685,687,689],{"class":190,"line":374},[188,682,377],{"class":206},[188,684,380],{"class":245},[188,686,234],{"class":206},[188,688,385],{"class":202},[188,690,388],{"class":206},[39,692,392],{"id":391},[26,694,395],{},[397,696,399],{},[401,698],{"tags":403,"lang":404,"section":405},{"title":15,"searchDepth":299,"depth":299,"links":700},[701,702,703,704],{"id":409,"depth":258,"text":410},{"id":412,"depth":258,"text":413},{"id":415,"depth":258,"text":416},{"id":418,"depth":258,"text":419},{"date":422,"tags":403,"locale":404,"sidebar":423},{"title":5,"description":28},[708,709,710,711],{"id":41,"depth":258,"text":42},{"id":151,"depth":258,"text":152},{"id":161,"depth":258,"text":162},{"id":391,"depth":258,"text":392},1781161569219]