質問するログイン新規登録
API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

710閲覧

Twichで受け取ったポイントやビッツに応じてLOVENSEを動かしたい

akane_kawaii

総合スコア0

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2024/01/24 16:13

0

0

実現したいこと

LOVENSEという大人のおもちゃがあります。アダルトなサイトでは投げ銭の額に応じて強い振動や長い振動を起こしてその様子を楽しむという文化があります。
それをTwichという健全な動画配信サイトでLOVENSEと連動させた配信をしたいと考えています。

幸いどちらもAPIに関する情報を公開してくれているのでありがたく使わせていただきます。

LOVENSE→https://developer.lovense.com/docs/standard-solutions/standard-api.html#step-2-find-your-user-s-toy-s
Twich→https://dev.twitch.tv/docs/api

発生している問題・分からないこと

  1. 番号リストTwichの配信の情報を取得してそれをLOVENSE側に伝えるのだろうということはわかった。

  2. 番号リストTwichの配信から情報を得る方法
    https://dev.twitch.tv/docs/api/get-started/
    上記を参考に進めましたがOAuth トークンのところで躓きました。

Twitch では、ほとんどの Twitch リソースにアクセスするために OAuth アクセス トークンが必要です。リソースには、アプリ アクセス トークンまたはユーザー アクセス トークンのいずれかが必要です。リソースに必要なトークンのタイプを判断するには、使用する予定のエンドポイントのリファレンスコンテンツを参照してください。

Get Usersエンドポイント (TwitchDev ユーザーに関する情報を取得するために使用しています) はどちらのタイプのトークンも受け入れるため、簡単なのでアプリ アクセス トークンを取得しましょう。アプリ アクセス トークンの詳細については、「クライアント認証情報の付与フロー」を参照してください。

この演習では、ターミナル ウィンドウを開き、次の cURL POST コマンドを入力します (コンピュータにcURL がインストールされている必要があります)。クライアント ID とシークレットのプレースホルダーを、アプリの登録時に受け取ったクライアント ID とシークレットで更新します。

curl -X POST 'https://id.twitch.tv/oauth2/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id=<your client id goes here>&client_secret=<your client secret goes here>&grant_type=client_credentials'

上記の結果が

PS C:\Users\paguc> curl -X POST 'https://id.twitch.tv/oauth2/token' \ {"status":400,"message":"missing client id"} curl: (3) URL rejected: Bad hostname PS C:\Users\paguc> -H 'Content-Type: application/x-www-form-urlencoded' \ -H : 用語 '-H' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名 前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。 発生場所 行:1 文字:1 + -H 'Content-Type: application/x-www-form-urlencoded' \ + ~~ + CategoryInfo : ObjectNotFound: (-H:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\Users\paguc> -d 'client_id=<your client id goes here>&client_secret=<your client secret goes here>&grant_type=client_credentials'

というエラーコードです。まずこれをどうにかしないと先に進めなさそうだと考えています。

  1. 無事にTwichの配信の情報を取得できたとして、これをどうLOVENSEに伝えて動かせばいいのか。恥ずかしながらここがさっぱりわかりません。配信しながら使いたいので、ビッツをもらってすぐに動くようにしたいです。ご教授お願い致します。 

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

「Twich LOVENSE 連動」などのワードで調べましたが、誰もやっていない(情報を出していない?)ようです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

取り急ぎ、考え方のみ書いておきます。

Twitch側で使うのはAPIではなくwebhookです。
webhookというのは、何かのイベントが起きた際に、それをHTTPで通知してくる仕組みです。

やることとしては、以下のようになります。

  1. 「Twitchから送られるwebhookを待ち受けて、それが所望のイベントであった場合は、LovenseにAPIを送信する」というプログラム(スクリプト)を作って動かしておく
  2. 1.をインターネットからアクセスできる状態にする(Twitchからwebhookを受け取れる状態にする)
  3. Twitchのwebhook送信先として2.のURLを設定する

1.のプログラムを自宅のPCで動かす場合は、2.についてはngrokというものを使うのがよいでしょう。
「ngrok webhook」で検索すればいろいろ例があります。

また、 https://webhook.site/ を利用する手もあります。

Twitchに関して、webhookを待ち受けるのでなく、APIで能動的にチェックしに行くこともできなくはないかもしれません。
しかし、所望のイベントが起きたことをすぐに検知したければ、短い間隔で常にAPIを送信し続ける必要があり、あまりスマートではありません。
webhookを受け取る方法のほうがスマートだといえます。

投稿2024/01/24 18:52

yuki_gh

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki_gh

2024/01/25 11:15 編集

> 「Twich LOVENSE 連動」などのワードで調べましたが、誰もやっていない(情報を出していない?)ようです。 さすがにそのものズバリの組み合わせはないようですが、「Twitchの配信開始をTwitterに投稿する」みたいなのはあるので、Twitch側については参考にできるでしょう。 > Twitch側で使うのはAPIではなくwebhookです。 ちょっと見てみましたが、Twitchのwebhookの設定やトークンの更新はAPIを使うようなので、APIを全く使わないわけではないですね。 > というエラーコードです。まずこれをどうにかしないと先に進めなさそうだと考えています。 これは、1行が長いのでバックスラッシュ(\)で分割(継続)しているわけですが、これはUNIX/Linux系(macOSも含む)のやり方で、PowerShellでは代わりにバッククオート(`)を使います。 つまり以下のようになります。(あるいは、分割せずに1行でダラダラと書いてもかまいません) curl -X POST 'https://id.twitch.tv/oauth2/token' ` -H 'Content-Type: application/x-www-form-urlencoded' ` -d 'client_id=<your client id goes here>&client_secret=<your client secret goes here>&grant_type=client_credentials' また、<your client id goes here>と<your client secret goes here>は、Twitchから取得したIDとシークレット(パスワード)をはめ込む必要があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問