<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Satana Charuwichitratana</title>
    <description>The latest articles on DEV Community by Satana Charuwichitratana (@mick).</description>
    <link>https://dev.to/mick</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F305926%2F577d9ffe-3fad-4482-8b42-be1edc09c759.jpeg</url>
      <title>DEV Community: Satana Charuwichitratana</title>
      <link>https://dev.to/mick</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mick"/>
    <language>en</language>
    <item>
      <title>LINE API Command Line Interface</title>
      <dc:creator>Satana Charuwichitratana</dc:creator>
      <pubDate>Thu, 23 Jan 2020 07:32:41 +0000</pubDate>
      <link>https://dev.to/mick/line-api-command-line-interface-5611</link>
      <guid>https://dev.to/mick/line-api-command-line-interface-5611</guid>
      <description>&lt;p&gt;LINE API CLI helps you to work with LINE-API-related projects faster as you do not need to switch between a web browser and IDE ( after your first-time setup :P ). If you already are a hardcore "Terminal/Console" fanboy that using cURL to work with LINE APIs, using this package will reduce your time typing same long API cURL commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  Available commands, operations, and options
&lt;/h3&gt;

&lt;h4&gt;
  
  
  LINE API configuration and token management
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;line&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;init&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;token&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--issue&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--revoke&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Richmenu API
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;richmenu&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remove&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;link&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unlink&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  LIFF API v1
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;liff&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remove&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  LINE Things API
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;things&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add:trial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remove:trial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list:trial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:device&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:devices&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:product&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Scenario management API for automatic communication
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;things&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;register:scenario-set&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remove:scenario-set&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:scenario-set&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  LINE TV API
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;linetv&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list:modules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:spotlight&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list:category&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:category&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list:station&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get:station&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ranking&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;live&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i @intocode-io/line-api-cli -g
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tn3CqdFc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685066-7e4fc380-d4b0-11e9-9c69-11f85fe6dd97.png" class="article-body-image-wrapper"&gt;&lt;img width="414" alt="npm i @intocode-io/line-api-cli -g" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tn3CqdFc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685066-7e4fc380-d4b0-11e9-9c69-11f85fe6dd97.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Project setup with &lt;code&gt;line&lt;/code&gt; command
&lt;/h2&gt;

&lt;p&gt;Let's start, to initialize project configuration file. Please go to your &lt;a href="https://developers.line.biz/console/"&gt;LINE Developer Console&lt;/a&gt; and get Channel ID and Channel secret. If you do not want to issue a short-lived access token later on, you will also need a long-lived access token.&lt;/p&gt;

&lt;p&gt;Once you have the information, run &lt;code&gt;line&lt;/code&gt; command with &lt;code&gt;init&lt;/code&gt; operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;line init
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This command will create &lt;code&gt;.line-api-cli.yml&lt;/code&gt; configuration file containing necessary information for the CLI to handle API request/response for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NGFzzQSq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685306-f28a6700-d4b0-11e9-94cc-dced718b1c9c.png" class="article-body-image-wrapper"&gt;&lt;img width="507" alt="line init" src="https://res.cloudinary.com/practicaldev/image/fetch/s--NGFzzQSq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685306-f28a6700-d4b0-11e9-94cc-dced718b1c9c.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Issue a short-lived access token
&lt;/h3&gt;

&lt;p&gt;Long-lived access token is nice and easy to use for developers but it is not as secured as a short-lived access token.&lt;/p&gt;

&lt;p&gt;To issue a short-lived access token, run the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;line token --issue
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;It will issue a short-lived access token. You can choose whether to replace the token into &lt;code&gt;.line-api-cli.yml&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Wvl8J4c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685575-6e84af00-d4b1-11e9-8438-6614e81f3d9d.png" class="article-body-image-wrapper"&gt;&lt;img width="529" alt="line token --issue" src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Wvl8J4c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685575-6e84af00-d4b1-11e9-8438-6614e81f3d9d.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do not forget to replace a short-lived. It is recommended to write a script to replace the token monthly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Revoke access token
&lt;/h3&gt;

&lt;p&gt;Ok, sometime you may feel insecure after exposing access token somewhere. No problem, you can revoke it with &lt;code&gt;--revoke&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;line token --revoke
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Working with &lt;code&gt;richmenu&lt;/code&gt; command
&lt;/h2&gt;

&lt;p&gt;It's time to display nice UI menu to your users, or maybe some menu to some specific user(s). You can do those tasks with &lt;code&gt;richmenu&lt;/code&gt; command.&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a rich menu
&lt;/h3&gt;

&lt;p&gt;First you need to prepare a data file and an image file for rich menu. After you have those in your project directory, you can run &lt;code&gt;richmenu&lt;/code&gt; command with &lt;code&gt;add&lt;/code&gt; operation to add a rich menu.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu add
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XrUFqv1o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64861793-138ebb80-d65b-11e9-8881-b8aaaf185e93.png" class="article-body-image-wrapper"&gt;&lt;img width="482" alt="richmenu add" src="https://res.cloudinary.com/practicaldev/image/fetch/s--XrUFqv1o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64861793-138ebb80-d65b-11e9-8881-b8aaaf185e93.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  List rich menus
&lt;/h3&gt;

&lt;p&gt;Rich menus can be listed with &lt;code&gt;list&lt;/code&gt; operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PzRDYKU2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64861824-31f4b700-d65b-11e9-8367-2c782bb8c4c4.png" class="article-body-image-wrapper"&gt;&lt;img width="612" alt="richmenu list" src="https://res.cloudinary.com/practicaldev/image/fetch/s--PzRDYKU2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64861824-31f4b700-d65b-11e9-8367-2c782bb8c4c4.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Remove a rich menu
&lt;/h3&gt;

&lt;p&gt;Get bored of old rich menu? You can remove a rich menu with &lt;code&gt;remove&lt;/code&gt; operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu remove
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then choose a rich menu to be removed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I2zSyM1S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/1315909/64874774-ef8ca380-d675-11e9-8e53-ac6e334f64b8.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" alt="richmenu remove" src="https://res.cloudinary.com/practicaldev/image/fetch/s--I2zSyM1S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/1315909/64874774-ef8ca380-d675-11e9-8e53-ac6e334f64b8.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set a rich menu as default
&lt;/h3&gt;

&lt;p&gt;If you'd like to set a rich menu as default for all users, run the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu default
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Link a rich menu to a user
&lt;/h3&gt;

&lt;p&gt;Rich menu can be linked to a specific user. For example, if you want a rich menu assigned only to LINE user with Administrator role. You can get a user ID and link a rich menu for the user with this command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu link
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Unlink a rich menu from a user
&lt;/h3&gt;

&lt;p&gt;Rich menu can be unlinked from a specific user using &lt;code&gt;unlink&lt;/code&gt; operation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;richmenu unlink
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Working with LIFF app using &lt;code&gt;liff&lt;/code&gt; command
&lt;/h2&gt;

&lt;p&gt;To develop more advanced LINE Bot, LIFF app may required. You can use &lt;code&gt;liff&lt;/code&gt; command to manage LIFF apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a LIFF app
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;liff add
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H9IRlV8P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/1315909/64910629-a3f3fb80-d742-11e9-94a7-600d5db096e2.gif" class="article-body-image-wrapper"&gt;&lt;img width="640" alt="liff add" src="https://res.cloudinary.com/practicaldev/image/fetch/s--H9IRlV8P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/1315909/64910629-a3f3fb80-d742-11e9-94a7-600d5db096e2.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  List LIFF apps
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;liff list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove a LIFF app
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;liff remove
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Update a LIFF app
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;liff update
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Working with LINE Things using &lt;code&gt;things&lt;/code&gt; command
&lt;/h2&gt;

&lt;h3&gt;
  
  
  List all LINE Things trial products
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things list:trial
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Add a trial product
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things add:trial
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove a trial product
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things remove:trial
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Get device information by device ID and user ID
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things get:device
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Specify the product ID and user ID, and acquire the device information
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things get:devices
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Specify the device ID, and acquire the product ID and PSDI
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things get:product
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Scenario management API for automatic communication
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Register (create or update) a scenario set for automatic communication under a product
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things register:scenario-set
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Get the scenario set registered under a product
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things get:scenario-set
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete a scenario set registered under a product
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;things remove:scenario-set
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Working with LINE TV using &lt;code&gt;linetv&lt;/code&gt; command
&lt;/h2&gt;

&lt;h3&gt;
  
  
  List sportlight curation module types
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv list:modules
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get sportlight curation module types in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv list:modules --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Get sportlight data
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:spotlight
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get sportlight data in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:sportlight --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Category List
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv list:category
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get category list in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:sportlight --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets category home data
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:category
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get category home data in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:category --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get category home data start from selected page use &lt;code&gt;--page&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:station --page &amp;lt;number&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets clip ranking data
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv ranking
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get clip ranking data in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv ranking --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get clip ranking data start from selected page use &lt;code&gt;--page&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv ranking --page &amp;lt;number&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets a clip search result
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv search
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get clip search result in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv search --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get clip search result from selected page use &lt;code&gt;--page&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv search --page &amp;lt;number&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets the station home (TV station) list.
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv list:station
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get station home (TV station) list in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv list:station --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets the Station Home (TV Station) data.
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:station
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get TV Station data in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:station --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get TV Station data start from selected page use &lt;code&gt;--page&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv get:station --page &amp;lt;number&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Gets live schedule information.
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv live
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To get live schedule data in JSON use &lt;code&gt;--format&lt;/code&gt; option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linetv live --format json
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Comprehensive usage
&lt;/h2&gt;

&lt;p&gt;We provide comprehensive usage of each command / operation / option with CLI. Simply run a command with/without operation and follow by &lt;code&gt;--help&lt;/code&gt; option. For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;line token --help
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;line --help
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YhL3cNzG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685826-d20edc80-d4b1-11e9-82fc-596009d85a87.png" class="article-body-image-wrapper"&gt;&lt;img width="680" alt="line --help" src="https://res.cloudinary.com/practicaldev/image/fetch/s--YhL3cNzG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/1315909/64685826-d20edc80-d4b1-11e9-82fc-596009d85a87.png"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>line</category>
      <category>api</category>
      <category>cli</category>
    </item>
    <item>
      <title>React Electron Boilerplate</title>
      <dc:creator>Satana Charuwichitratana</dc:creator>
      <pubDate>Wed, 22 Jan 2020 03:41:27 +0000</pubDate>
      <link>https://dev.to/intocode/react-electron-boilerplate-4kpg</link>
      <guid>https://dev.to/intocode/react-electron-boilerplate-4kpg</guid>
      <description>&lt;p&gt;This boilerplate is for desktop application development using web frameworks and libraries including React, Electron, Parcel. The boilerplate provides quality control with Jest, Enzyme for testing, and ESLint for linting.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to use the boilerplate
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Setup new project
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Clone the project
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/intocode-io/react-electron-boilerplate.git
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Change directory name and the following properties in package.json to your new project.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your-new-project"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What about the project"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"repository"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git+https://github.com/your-username/your-project.git"&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"keywords"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"electron"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"what about"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Name Surname"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"license"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MIT"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"bugs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/your-username/your-project/issues"&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"homepage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://your-home-page"&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Note: &lt;strong&gt;DO NOT&lt;/strong&gt; delete the rest of properties in the package.json.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install dependencies
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;   npm i
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  Start development
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  Build production
&lt;/h4&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>react</category>
      <category>electron</category>
      <category>parcel</category>
      <category>boilerplate</category>
    </item>
  </channel>
</rss>
