[{"data":1,"prerenderedAt":662},["ShallowReactive",2],{"h940860036":3,"h2786468985":407,"h1077001412":655},{"id":4,"title":5,"body":6,"description":28,"extension":398,"meta":399,"navigation":170,"path":403,"seo":404,"stem":405,"__hash__":406},"docs\u002Fja\u002Ftips\u002F2026\u002F07\u002F16\u002Fliff-url-additional-info.md","LIFF URLに追加したパラメータ、読み取るのはliff.init()の後で",{"type":7,"value":8,"toc":383},"minimark",[9],[10,11,12,20,25,29,34,46,61,64,67,75,88,94,184,198,208,267,281,295,301,320,324,327,344,373,377],"Tips",{},[13,14,17],"h1",{"id":15,"class":16},"","!mb-4",[18,19],"page-title",{},[21,22],"display-date",{"date":23,"class":24},"2026\u002F07\u002F16","!mb-20",[26,27,28],"p",{},"LIFF URLには、クエリパラメータを追加できることを知っていますか？今回のTipsでは、LIFF URLに追加したパラメータの便利な使い方と、それを読み取るときのコツを紹介します。",[30,31,33],"h2",{"id":32},"liff-url-additional-info","LIFF URLには追加情報を付与できる",[26,35,36,45],{},[37,38,40],"glossary-tooltip",{"glossary-id":39},"liff-url",[41,42,44],"a",{"href":43},"\u002Fglossary\u002F#liff-url","LIFF URL","には、パスやクエリパラメータ、URLフラグメントといった追加情報を付与できます。",[47,48,49,56],"ul",{},[50,51,52],"li",{},[53,54,55],"code",{},"https:\u002F\u002Fliff.line.me\u002F{liffId}\u002F?store=shibuya",[50,57,58],{},[53,59,60],{},"https:\u002F\u002Fliff.line.me\u002F{liffId}\u002Fsummer2026\u002F#coupon",[26,62,63],{},"追加情報は、最終的に表示されるページのURLにも引き継がれます。店舗ごとにパラメータを変えたQRコードを配って画面を出し分けたり、キャンペーンの流入経路を区別したりといった使い方ができます。",[26,65,66],{},"ただし、パラメータなどの追加情報を読み取るタイミングには注意が必要です。",[30,68,70,71,74],{"id":69},"read-params-after-liff-init","パラメータの読み取りは",[53,72,73],{},"liff.init()","の完了後に",[26,76,77,78,81,82,87],{},"LIFF URLに付与した追加情報は、一時的に",[53,79,80],{},"liff.state","というクエリパラメータへ退避され、",[41,83,85],{"href":84},"\u002Freference\u002Fliff\u002F#initialize-liff-app",[53,86,73],{},"メソッドの処理の中で行われるリダイレクトを経て、元の形に復元されます。",[26,89,90,91,93],{},"例えば",[53,92,55],{},"にアクセスしたとき、次の書き方は典型的な失敗例です。",[95,96,100],"pre",{"className":97,"code":98,"language":99,"meta":15,"style":15},"language-javascript shiki shiki-themes github-dark-default","\u002F\u002F NG例: liff.init()の完了を待たずにURLを読み取っている\nconst params = new URLSearchParams(location.search);\nconst store = params.get(\"store\"); \u002F\u002F nullになることがある\n\nliff.init({ liffId: myLiffId });\n","javascript",[53,101,102,111,136,165,172],{"__ignoreMap":15},[103,104,107],"span",{"class":105,"line":106},"line",1,[103,108,110],{"class":109},"sH3jZ","\u002F\u002F NG例: liff.init()の完了を待たずにURLを読み取っている\n",[103,112,114,118,122,125,128,132],{"class":105,"line":113},2,[103,115,117],{"class":116},"suJrU","const",[103,119,121],{"class":120},"sFSAA"," params",[103,123,124],{"class":116}," =",[103,126,127],{"class":116}," new",[103,129,131],{"class":130},"sc3cj"," URLSearchParams",[103,133,135],{"class":134},"sZEs4","(location.search);\n",[103,137,139,141,144,146,149,152,155,159,162],{"class":105,"line":138},3,[103,140,117],{"class":116},[103,142,143],{"class":120}," store",[103,145,124],{"class":116},[103,147,148],{"class":134}," params.",[103,150,151],{"class":130},"get",[103,153,154],{"class":134},"(",[103,156,158],{"class":157},"s9uIt","\"store\"",[103,160,161],{"class":134},"); ",[103,163,164],{"class":109},"\u002F\u002F nullになることがある\n",[103,166,168],{"class":105,"line":167},4,[103,169,171],{"emptyLinePlaceholder":170},true,"\n",[103,173,175,178,181],{"class":105,"line":174},5,[103,176,177],{"class":134},"liff.",[103,179,180],{"class":130},"init",[103,182,183],{"class":134},"({ liffId: myLiffId });\n",[26,185,186,187,189,190,193,194,197],{},"追加情報がまだ",[53,188,80],{},"へ退避されたままのため、",[53,191,192],{},"store","は",[53,195,196],{},"null","になることがあります。",[26,199,200,201,203,204,207],{},"そのため、URLの読み取りは、",[53,202,73],{},"メソッドが返す",[53,205,206],{},"Promise","オブジェクトがresolveされてから実行してください。",[95,209,211],{"className":97,"code":210,"language":99,"meta":15,"style":15},"await liff.init({ liffId: myLiffId });\n\n\u002F\u002F liff.init()完了後にパラメータを読み取ることができる\nconst params = new URLSearchParams(location.search);\nconst store = params.get(\"store\");\n",[53,212,213,225,229,234,248],{"__ignoreMap":15},[103,214,215,218,221,223],{"class":105,"line":106},[103,216,217],{"class":116},"await",[103,219,220],{"class":134}," liff.",[103,222,180],{"class":130},[103,224,183],{"class":134},[103,226,227],{"class":105,"line":113},[103,228,171],{"emptyLinePlaceholder":170},[103,230,231],{"class":105,"line":138},[103,232,233],{"class":109},"\u002F\u002F liff.init()完了後にパラメータを読み取ることができる\n",[103,235,236,238,240,242,244,246],{"class":105,"line":167},[103,237,117],{"class":116},[103,239,121],{"class":120},[103,241,124],{"class":116},[103,243,127],{"class":116},[103,245,131],{"class":130},[103,247,135],{"class":134},[103,249,250,252,254,256,258,260,262,264],{"class":105,"line":174},[103,251,117],{"class":116},[103,253,143],{"class":120},[103,255,124],{"class":116},[103,257,148],{"class":134},[103,259,151],{"class":130},[103,261,154],{"class":134},[103,263,158],{"class":157},[103,265,266],{"class":134},");\n",[26,268,269,270,272,273,276,277,280],{},"パスやURLフラグメントも同様に、",[53,271,73],{},"の完了後であれば",[53,274,275],{},"location.pathname","や",[53,278,279],{},"location.hash","から読み取ることができます。",[26,282,283,284,286,287,294],{},"書き換えはより深刻で、resolve前にURLを変更したりサーバーサイドでリダイレクトしたりすると、LIFFアプリを正常に開けない場合があります。SPAのルーターや計測タグなど、読み込み時にURLを操作するライブラリの初期化も",[53,285,73],{},"の完了後に行ってください。詳しくは、『LIFF APIリファレンス』の「",[41,288,290,291,293],{"href":289},"\u002Freference\u002Fliff\u002F#initializing-liff-app-notes-3","URLを操作する処理は",[53,292,73],{},"が完了してから実行する","」を参照してください。",[30,296,298,300],{"id":297},"liff-prefixed-params",[53,299,177],{},"で始まるクエリパラメータは変更しない",[26,302,303,305,306,308,309,319],{},[53,304,80],{},"のように",[53,307,177],{},"で始まるクエリパラメータは、LIFF SDKが初期化やLIFF間遷移のために使う情報です。変更したり削除したりするとLIFFアプリが正常に動作しなくなることがあるため、手を加えないでください",[310,311,312],"sup",{},[41,313,318],{"href":314,"ariaDescribedBy":315,"dataFootnoteRef":15,"id":317},"#user-content-fn-liff-query-params",[316],"footnote-label","user-content-fnref-liff-query-params","1","。",[30,321,323],{"id":322},"wrap-up","おわりに",[26,325,326],{},"今回紹介した動作について詳しくは、以下のドキュメントを参照してください。",[47,328,329,337],{},[50,330,331,332,336],{},"『LIFFドキュメント』の「",[41,333,335],{"href":334},"\u002Fdocs\u002Fliff\u002Fopening-liff-app\u002F#redirect-flow","LIFF URLにアクセスしてからLIFFアプリが開くまでの動作について","」",[50,338,339,340,336],{},"『LIFF APIリファレンス』の「",[41,341,342],{"href":84},[53,343,73],{},[345,346,349,354],"section",{"className":347,"dataFootnotes":15},[348],"footnotes",[30,350,353],{"className":351,"id":316},[352],"sr-only","Footnotes",[355,356,357],"ol",{},[50,358,360,361,365,366],{"id":359},"user-content-fn-liff-query-params","詳しくは、『LIFFドキュメント』の「",[41,362,364],{"href":363},"\u002Fdocs\u002Fliff\u002Fdeveloping-liff-apps\u002F#initializing-liff-app","LIFFアプリを初期化する","」を参照してください。 ",[41,367,372],{"href":368,"ariaLabel":369,"className":370,"dataFootnoteBackref":15},"#user-content-fnref-liff-query-params","Back to reference 1",[371],"data-footnote-backref","↩",[374,375,376],"style",{},"html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}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 .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}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);}",[378,379],"tags",{"tags":380,"lang":381,"section":382},"liff","en","tips",{"title":15,"searchDepth":167,"depth":167,"links":384},[385,388,391,394,397],{"id":386,"depth":113,"text":387},"liff-urlには追加情報を付与できる-liff-url-additional-info","LIFF URLには追加情報を付与できる {#liff-url-additional-info}",{"id":389,"depth":113,"text":390},"パラメータの読み取りはliffinitの完了後に-read-params-after-liff-init","パラメータの読み取りはliff.init()の完了後に {#read-params-after-liff-init}",{"id":392,"depth":113,"text":393},"liffで始まるクエリパラメータは変更しない-liff-prefixed-params","liff.で始まるクエリパラメータは変更しない {#liff-prefixed-params}",{"id":395,"depth":113,"text":396},"おわりに-wrap-up","おわりに {#wrap-up}",{"id":316,"depth":113,"text":353},"md",{"date":400,"tags":380,"locale":401,"sidebar":402},"2026-07-16 00:00 UTC","ja",false,"\u002Fja\u002Ftips\u002F2026\u002F07\u002F16\u002Fliff-url-additional-info",{"title":5,"description":28},"ja\u002Ftips\u002F2026\u002F07\u002F16\u002Fliff-url-additional-info","kWsKMmmyh6EiDYTE2I7n_plCdW_uSKsPPEmEGiowg1E",{"id":4,"title":5,"body":408,"description":28,"extension":398,"meta":653,"navigation":170,"path":403,"seo":654,"stem":405,"__hash__":406},{"type":7,"value":409,"toc":646},[410],[10,411,412,416,418,420,422,428,438,440,442,446,454,458,512,520,526,580,588,596,600,611,613,615,627,642,644],{},[13,413,414],{"id":15,"class":16},[18,415],{},[21,417],{"date":23,"class":24},[26,419,28],{},[30,421,33],{"id":32},[26,423,424,45],{},[37,425,426],{"glossary-id":39},[41,427,44],{"href":43},[47,429,430,434],{},[50,431,432],{},[53,433,55],{},[50,435,436],{},[53,437,60],{},[26,439,63],{},[26,441,66],{},[30,443,70,444,74],{"id":69},[53,445,73],{},[26,447,77,448,81,450,87],{},[53,449,80],{},[41,451,452],{"href":84},[53,453,73],{},[26,455,90,456,93],{},[53,457,55],{},[95,459,460],{"className":97,"code":98,"language":99,"meta":15,"style":15},[53,461,462,466,480,500,504],{"__ignoreMap":15},[103,463,464],{"class":105,"line":106},[103,465,110],{"class":109},[103,467,468,470,472,474,476,478],{"class":105,"line":113},[103,469,117],{"class":116},[103,471,121],{"class":120},[103,473,124],{"class":116},[103,475,127],{"class":116},[103,477,131],{"class":130},[103,479,135],{"class":134},[103,481,482,484,486,488,490,492,494,496,498],{"class":105,"line":138},[103,483,117],{"class":116},[103,485,143],{"class":120},[103,487,124],{"class":116},[103,489,148],{"class":134},[103,491,151],{"class":130},[103,493,154],{"class":134},[103,495,158],{"class":157},[103,497,161],{"class":134},[103,499,164],{"class":109},[103,501,502],{"class":105,"line":167},[103,503,171],{"emptyLinePlaceholder":170},[103,505,506,508,510],{"class":105,"line":174},[103,507,177],{"class":134},[103,509,180],{"class":130},[103,511,183],{"class":134},[26,513,186,514,189,516,193,518,197],{},[53,515,80],{},[53,517,192],{},[53,519,196],{},[26,521,200,522,203,524,207],{},[53,523,73],{},[53,525,206],{},[95,527,528],{"className":97,"code":210,"language":99,"meta":15,"style":15},[53,529,530,540,544,548,562],{"__ignoreMap":15},[103,531,532,534,536,538],{"class":105,"line":106},[103,533,217],{"class":116},[103,535,220],{"class":134},[103,537,180],{"class":130},[103,539,183],{"class":134},[103,541,542],{"class":105,"line":113},[103,543,171],{"emptyLinePlaceholder":170},[103,545,546],{"class":105,"line":138},[103,547,233],{"class":109},[103,549,550,552,554,556,558,560],{"class":105,"line":167},[103,551,117],{"class":116},[103,553,121],{"class":120},[103,555,124],{"class":116},[103,557,127],{"class":116},[103,559,131],{"class":130},[103,561,135],{"class":134},[103,563,564,566,568,570,572,574,576,578],{"class":105,"line":174},[103,565,117],{"class":116},[103,567,143],{"class":120},[103,569,124],{"class":116},[103,571,148],{"class":134},[103,573,151],{"class":130},[103,575,154],{"class":134},[103,577,158],{"class":157},[103,579,266],{"class":134},[26,581,269,582,272,584,276,586,280],{},[53,583,73],{},[53,585,275],{},[53,587,279],{},[26,589,283,590,286,592,294],{},[53,591,73],{},[41,593,290,594,293],{"href":289},[53,595,73],{},[30,597,598,300],{"id":297},[53,599,177],{},[26,601,602,305,604,308,606,319],{},[53,603,80],{},[53,605,177],{},[310,607,608],{},[41,609,318],{"href":314,"ariaDescribedBy":610,"dataFootnoteRef":15,"id":317},[316],[30,612,323],{"id":322},[26,614,326],{},[47,616,617,621],{},[50,618,331,619,336],{},[41,620,335],{"href":334},[50,622,339,623,336],{},[41,624,625],{"href":84},[53,626,73],{},[345,628,630,633],{"className":629,"dataFootnotes":15},[348],[30,631,353],{"className":632,"id":316},[352],[355,634,635],{},[50,636,360,637,365,639],{"id":359},[41,638,364],{"href":363},[41,640,372],{"href":368,"ariaLabel":369,"className":641,"dataFootnoteBackref":15},[371],[374,643,376],{},[378,645],{"tags":380,"lang":381,"section":382},{"title":15,"searchDepth":167,"depth":167,"links":647},[648,649,650,651,652],{"id":386,"depth":113,"text":387},{"id":389,"depth":113,"text":390},{"id":392,"depth":113,"text":393},{"id":395,"depth":113,"text":396},{"id":316,"depth":113,"text":353},{"date":400,"tags":380,"locale":401,"sidebar":402},{"title":5,"description":28},[656,657,659,661],{"id":32,"depth":113,"text":33},{"id":69,"depth":113,"text":658},"パラメータの読み取りはliff.init()の完了後に",{"id":297,"depth":113,"text":660},"liff.で始まるクエリパラメータは変更しない",{"id":322,"depth":113,"text":323},1784768856710]