AppSheetでTwitterアカウント（URL）リンク設定

#はじめに
本記事は一度でもAppSheetでのアプリ構築を行ったことがある方向けに記載します。
そのため、一部作業方法についてはスキップしながら記入します。
作業に対し不明点がありましたらコメントを記載いただけますと幸いです。

DBはSpreadsheetを利用します。

デフォルトURLに対し、記入した文字列を記入し、リンクとする方法を記入します。
今回の場合、デフォルトURLをTwitterとし、記入する文字列をアカウントIDとします。

（例）
デフォルトURL：https://twitter.com/
アカウントID ：UN_NERV
リンク先     ：https://twitter.com/UN_NERV
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/bc0034c4-0fdf-2380-1ab7-30efe3af560a.png)

#準備（Spreadsheetでのテーブル設定）
下記構成をスプレッドシートに用意します。

| ID | アカウント名 | アカウントID | リンク |
|-----------|------------|------------|------------|
※IDとアカウント名については、わかりやすくするために設定しているため、必須ではありません。

#Data構築（AppSheet作業）
AppSheetでの作業に移動します。
Dataにて作成したスプレッドシートを読み込んでください。

Columnsタブにて読み込んだスプレッドシートの各カラムの設定を行います。

<dl>
  <dt>_RowNumber</dt>
  <dd>利用しないため設定をすべて解除します。</dd>
  <dd>　</dd>
  <dt>ID</dt>
  <dd>一意の値として利用します。</dd>
  <dd>Key?を選択し、SHOW?を解除。</dd>
  <dd>INITIAL VALUEに「UNIQUEID()」を設定。</dd>
  <dd>SEARCH?を解除。</dd>
  <dd>※表示する設定は必要ないので解除します。</dd>
  <dd>　</dd>
  <dt>アカウント名</dt>
  <dd>Twitterのアカウント名を記入するために利用します。</dd>
  <dd>LABEL?を選択してください。</dd>
  <dd>　</dd>
  <dt>アカウントID</dt>
  <dd>TwitterのアカウントIDを記入するために利用します。</dd>
  <dd>TYPEが「Text」に設定されていれば問題ありません。</dd>
  <dd>　</dd>
  <dt>リンク</dt>
  <dd>デフォルトURLを設定し、アカウントIDで記入した内容と組み合わせることが出来るようにします。</dd>
  <dd>TYPEを「Url」に変更します。</dd>
  <dd>FORMULAに下記設定を記入します。</dd>
  <dd><strong>　　HYPERLINK(CONCATENATE("https://twitter.com/",[アカウントID]),CONCATENATE("@",[アカウントID]))</strong></dd>
  <dd>　　※設定の内容については後述</dd>
</dl>

以上です。
この時点で一度SAVEを行い、エラー等が表示されないか確認してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/812ad9b5-456e-af8e-ab06-e7120db7af09.png)

#UX構築（AppSheet作業）
New Viewにて新規画面設定を開いてください。

下記を変更してください。（項目として上げていないものは変更不要です。）

<dl>
  <dt>View name</dt>
  <dd>「Twitterアカウント」※任意名前</dd>
  <dd>　</dd>
  <dt>For this data</dt>
  <dd>今回読み込んだスプレッドシート名を選択してください。</dd>
  <dd>　</dd>
  <dt>View type</dt>
  <dd>「table」を選択してください。</dd>
</dl>
以上です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/f3e93d16-678f-15f7-c937-49e91e3c3a7b.png)

これにて、データが登録されている場合に
一覧として表示される画面の設定が完了となります。

続いて、画面下部にある「Ref Views」に下記構成のページを編集します。

**「スプレッドシート名」_Detail**
登録されたデータを選択し、表示した画面となります。
　Column order：「Add」を選択し、下記を追加
　　「アカウント名」
　　「アカウントID」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/2db348c8-ac6f-6aa8-e43d-73c401a09c27.png)


**「スプレッドシート名」_Form**
アカウント情報の登録・編集画面で表示される画面となります。
　Column order：「Add」を選択し、下記を追加
　　「アカウント名」
　　「アカウントID」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/3b73d5c6-750f-5e9f-8932-9d7c88e61ca0.png)


以上です。
この時点でSAVEを行ってください。
「スプレッドシート名」_FormのColumn orderに「ID」が自動的に追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/2692b807-6617-97aa-84c4-938635eac751.png)

構築は完了となります。

#動作確認
画面右のプレビューから動作確認を行ってください。

**「スプレッドシート名」_Form**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/c456a052-8c29-0691-0700-8860bfe28285.png)

**UX構築で最初に設定した画面**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/bc0034c4-0fdf-2380-1ab7-30efe3af560a.png)
この画面内、アカウント名の横にある□から→がでているアイコンをクリックし、
Twitterの対象アカウント画面へ遷移することを確認してください。

**「スプレッドシート名」_Detail**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/a6fee877-eaa3-40eb-8f84-51c7eacc422a.png)

以上で動作確認完了となります。

#リンク設定について
下記の通り設定したFORMULAの内容について分解します。

```
HYPERLINK(
　CONCATENATE("https://twitter.com/",[アカウントID])
　,CONCATENATE("@",[アカウントID])
)
```

> HYPERLINK（リンク先, 別名）

HYPERLINK についてのドキュメントは下記になります。
https://help.appsheet.com/en/articles/2357254-hyperlink

> CONCATENATE（文字列1, 文字列2, ..., 文字列255）

CONCATENATE についてのドキュメントは下記になります。
https://help.appsheet.com/en/articles/2347638-concatenate

---

設定した内容はアカウントIDをTwitterURLと結合し、
表示時には@アカウントIDとなるようにしています。
※今回のUX設定ではURLを表示しないようにしていますが…。

…ただ、何故かうまく表示されない場合があります。
本来、Spreadsheetには下記構成で保存される仕組みとなっています。

```
{"Url":"https://twitter.com/UN_NERV","LinkText":"@UN_NERV"}
```

想定通り保存される場合もあれば、うまく行かない時もあり…
解消の仕方がわかる方がいらっしゃいましたらコメントをお願い致します。。