質問編集履歴

1 タイトル修正

hotategai

hotategai score 9

2017/05/05 20:55  投稿

LINE MessagingAPIでroomId/groupIdの取得方法がわかりません
LINE MessagingAPIでroomId/groupIdの取得方法
###前提・実現したいこと
AzureFunctionにてC#でLINEBotを作成しています。
LINE MessagingAPIで、Reply APIを使用して送られてきたリクエストからroomId/groupIdを取得したいのですが、失敗します。
(最終的には取得したroomId/groupIdを使用してPostAPIからルームにPOSTしようとしています)
どなたか取得方法をご教示いただけませんでしょうか。
###発生している問題・エラーメッセージ
以下のようなエラーとなり取得できません。
```
error CS1061: 'Source' does not contain a definition for 'groupId' and no extension method 'groupId' accepting a first argument of type 'Source' could be found (are you missing a using directive or an assembly reference?)
```
###該当のソースコード
```cs
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
// リクエストJSONをパース
string jsonContent = await req.Content.ReadAsStringAsync();
Request data = JsonConvert.DeserializeObject<Request>(jsonContent);
// リクエストデータからデータを取得
foreach (var item in data.events)
{
var userId = item.source.roomId.ToString();//←ここで取得したい
//以下略
```
###試したこと
ルームだけではなくグループにも参加させて`item.source.groupId.ToString()`を試しましたが同じでした。
1対1の会話で試しましたが`item.source.userId.ToString()`で問題なく取得できました。
###補足情報(言語/FW/ツール等のバージョンなど)
上記ソースで`item.source.type.ToString()`の取得結果は「room」でした。
  • C#

    13489 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Azure

    395 questions

    Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

  • LINE Messaging API

    526 questions

    LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る