[Power BI Tips] Power BI Report に Twitter の投稿ボタンを付けたい

# 需要があるかどうかは知りませんが
はい、2020.06.17 から開催されている de:code 2020 ですが、今回も例の如くセッションリストを作成しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/7ab79ede-a29e-b79e-a742-5a36f0a04db0.png)
セッションリストへの URL はこちら
https://bit.ly/decode20-session

このセッションリストの使い方と機能は以下の通りです。

decode に 2D モードでサインインした状態で Power BI にアクセスします
    - セッション名、メインスピーカーは部分文字列で検索可能です
    - その他はドロップダウンの選択により検索可能です
    - セッション動画へのリンクがあります
    - 「これから視聴するよ！」ツイートが可能な Tweet ボタン（リンク）があります

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">お待んたせいたしました！<a href="https://twitter.com/hashtag/PowerBI?src=hash&amp;ref_src=twsrc%5Etfw">#PowerBI</a> で作成した <a href="https://twitter.com/hashtag/decode20?src=hash&amp;ref_src=twsrc%5Etfw">#decode20</a> のセッションリストができたので公開します😁<br>動画の最初にできることと注意事項がありますので、よく読んで適切に使用してください<br><br>何か気付いたことがあれば、教えてくださいませー<a href="https://twitter.com/hashtag/PBIJP?src=hash&amp;ref_src=twsrc%5Etfw">#PBIJP</a> <a href="https://t.co/bCjUHendWp">pic.twitter.com/bCjUHendWp</a></p>&mdash; Yugo Shimizu | Power BI MVP (@yugoes1021) <a href="https://twitter.com/yugoes1021/status/1273849322497429505?ref_src=twsrc%5Etfw">June 19, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

上記が公開時のツイートなのですが、動画をご覧になっていただけるとわかる通り、途中に Tweet ボタンがあります。
今回の記事はこの Tweet ボタンの作り方です

# 仕組みは簡単
何も難しくありません。
まずは Twitter の仕様から理解しちゃいましょう。

よく Web サイトにある Tweet ボタンですが、押すと定型の文面と関連するハッシュタグ入りの文章を作ってくれて、
あとは **[ツイートする]** ボタンを押せば、投稿完了します。

実は URL のみで同じことが可能です。
**https://twitter.com/intent/tweet** という URL の後ろにパラメータを付けることでできちゃいます。
例えば、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/2070ff3a-6eea-1f8b-90a5-de81eb41d52d.png)

というひな型を作る場合

**https://twitter.com/intent/tweet?text=こんにちは！&hashtags=PowerBI王子,PowerBI&url=https://yugoes1021.weebly.com**

となります。
分解してみると

メインの URL: https://twitter.com/intent/tweet

| Key                              | Value                                   |
|:---------------------------------|:----------------------------------------|
| text                             | ツイート内容                            |
| hashtags                         | ハッシュタグ。複数の場合、カンマで繋げる|
| url                              | 本文に入れたい URL                      |


となります。メインの URL と最初のパラメータは **?** で繋ぎ、**Key** と **Value** は **=** で、パラメータ同士は **&** で繋ぎます。

ね、簡単でしょ？
実際にご自身で作って、試してみてください。

# ということは
そう、Twitter の仕組みがわかっちゃえば、あとは URL を動的に生成するか、データとして持たせてしまえばよいのです。
**de:code 2020** のセッションリストでは **[新しい列]** で作成しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/382e3c4f-49a0-15c8-d002-9b8286fd59e5.png)

```DAX
Tweet = "https://twitter.com/intent/tweet?text=" & [SessionTitle] & " を視聴します！&hashtags=decode20," & [SessionID] & "&url=" & [SessionURL]
```

こうすると

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/e9dcf406-a63d-07c2-943a-8f070d5e65d5.png)

こんなふうに、セッションタイトル、セッションURL、ハッシュタグ x 2 が入るとというわけです。
もちろんこの列を リボンの [列ツール] - データカテゴリ] - [Web URL] を設定することをお忘れなく！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/441cba40-c444-0b4b-d775-911bf55b1f0a.png)

この状態で テーブル や マトリックス では URL のリンクとして動作します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/b831943c-72c5-5e62-e70c-50368bb274b5.png)

# さて、ボタンにするには？
これもそんなに難しくはありません
画面右上にあるのがボタンです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/34837a30-3b08-a590-2f41-3de4f98e96de.png)

これボタンと言っていますが、実際は画像です。画像にアクションを指定しています。
Power BI でアクションが指定できるのはボタンと画像です。

Power BI でボタンを使用する
https://docs.microsoft.com/ja-jp/power-bi/create-reports/desktop-buttons

↑ の記事を一読してみてください。

**[挿入]** - **[画像]** から任意の画像を挿入して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/754976de-c2c5-7418-e4f1-2284ff29056e.png)
挿入した画像の **[アクション]** の **[型]** を **Web URL** にします。
そして **[Web URL]** にメジャーを指定するのですが、ここではまだメジャーがないと思うのでメジャーを作ってください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/4c82bb37-1a41-44d2-e003-649237650f2c.png)
以下の Selected Tweet のようなメジャーです。
こうでなければいけないわけではなく、あるタイミングで、データがひとつに特定されているようになっていれば大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/5688340f-b89a-15f3-baf6-af8b104a6920.png)

```DAX
Selected Tweet = SELECTEDVALUE(Sessions[Tweet])
```
そうして **[アクション]** - **[Web URL]** をクリックして表示される画面で作成したメジャーを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/571fe4a7-5182-70b3-e8aa-a30b9b6c8849.png)


これで OK です。Power BI Desktop 上で動きを確認するには Ctrl を押しながらボタン（画像）をクリックすると動作します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152946/4aa33e9c-0202-8de9-86d7-71100eefdd33.png)

はい、無事に動作しましたか？
もし動作しなかったり、何かエラーが起きてしまったとしたら、慌てず設定を順に見直すか、データを見直してください。

# まとめ
いかがでしたでしょうか？

最後まで読んでいただきありがとうございました。また気が向いたら、Power BI Tips シリーズ書きます。
皆様からのリクエスト、お待ちしております。

何かリクエストがあれば、以下までー🤗
Twitter: https://twitter.com/yugoes1021
Facebook: https://www.facebook.com/yugoes1021
LinkedIn: https://www.linkedin.com/in/yugoes1021/