teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

更新

2019/10/29 00:11

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -140,4 +140,19 @@
140
140
  ```
141
141
 
142
142
  レスポンスは400(Bad request)になっています。
143
- 見た感じだと、APIリファレンスの要求に沿っている気がするのですが、どこかおかしいい箇所がありますでしょうか。
143
+ 見た感じだと、APIリファレンスの要求に沿っている気がするのですが、どこかおかしいい箇所がありますでしょうか。
144
+
145
+ ちなにみに以下が現在成功している、マルチメッセージのFiddlerの結果です。比べても大きな違いはない気がします。
146
+ また、マルチメッセージはテンプレートの既存メソッドを指定しています。
147
+
148
+ ```ここに言語を入力
149
+ POST https://api.line.me/v2/bot/message/multicast HTTP/1.1
150
+ Authorization: Bearer my token
151
+ Content-Type: application/json; charset=utf-8
152
+ Host: api.line.me
153
+ Content-Length: 143
154
+ Expect: 100-continue
155
+ Connection: Keep-Alive
156
+
157
+ {"to":["ID1","ID2"],"messages":[{"type":"text","text":"マルチメッセージ"}]}
158
+ ```

6

更新

2019/10/29 00:11

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -123,4 +123,21 @@
123
123
  );
124
124
 
125
125
  await client.SendAsync(request);
126
- ```
126
+ ```
127
+
128
+ 追記④
129
+ 現在POSTでブロードキャストメッセージを送ると以下のようにFiddlerに表示されます。
130
+ ```ここに言語を入力
131
+ POST https://api.line.me/v2/bot/message/broadcast HTTP/1.1
132
+ Authorization: Bearer my token
133
+ Content-Type: application/json; charset=utf-8
134
+ Host: api.line.me
135
+ Content-Length: 52
136
+ Expect: 100-continue
137
+ Connection: Keep-Alive
138
+
139
+ {"messages":{"type":"text","text":"test test test"}}
140
+ ```
141
+
142
+ レスポンスは400(Bad request)になっています。
143
+ 見た感じだと、APIリファレンスの要求に沿っている気がするのですが、どこかおかしいい箇所がありますでしょうか。

5

更新

2019/10/28 23:34

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -83,4 +83,44 @@
83
83
  ![イメージ説明](a9298d00b78930b2d35317add26b5d17.png)
84
84
 
85
85
  値も指定通りになっている気がします。
86
- 特にサーバーエラー等は出ていません。
86
+ 特にサーバーエラー等は出ていません。
87
+
88
+ 追記⓷
89
+ 現在、ローカルホストを外部に公開するためにngrokを使用しています。そこでは200Okのレスポンスが返ってきます。
90
+ が、fiddlerではエラーになっているようです。
91
+ 以下がその画面と、現在のコードです。
92
+ ![イメージ説明](5acf9948e2eb6689d5ef14f13ff76da9.png)
93
+
94
+ ```現在のコード
95
+ // To creat HttpClient
96
+ var client = new HttpClient();
97
+
98
+ // Accesstoken
99
+ var accessToken = "token=";
100
+
101
+ // URL
102
+ var url = "https://api.line.me/v2/bot/message/broadcast";
103
+
104
+ // POST
105
+ var request = new HttpRequestMessage(HttpMethod.Post, url);
106
+
107
+ // Request Header
108
+ request.Headers.Add("Authorization", "Bearer " + accessToken);
109
+
110
+ var str1 = new Dictionary<string, string>();
111
+ str1.Add("type", "text");
112
+ str1.Add("text", "test test test");
113
+
114
+ var str2 = new Dictionary<string, Dictionary<string, string>>();
115
+ str2.Add("messages", str1);
116
+
117
+ var json = JsonConvert.SerializeObject(str2);
118
+
119
+ request.Content = new StringContent(
120
+ json.ToString(),
121
+ Encoding.UTF8,
122
+ "application/json"
123
+ );
124
+
125
+ await client.SendAsync(request);
126
+ ```

4

更新

2019/10/28 08:45

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -56,7 +56,7 @@
56
56
  var client = new HttpClient();
57
57
 
58
58
  // Accesstoken
59
- var accessToken = "XXXX";
59
+ var accessToken = "token";
60
60
 
61
61
  // URL
62
62
  var url = "https://api.line.me/v2/bot/message/broadcast";

3

更新

2019/10/28 02:10

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -47,4 +47,40 @@
47
47
  {
48
48
  var response = await client.PostAsync($"http://foo.example.com", content);
49
49
  }
50
- ```
50
+ ```
51
+
52
+ 追記⓶
53
+ 現在のコードは以下です。ボディとヘッダーを同時に設定できました。
54
+ ```C#
55
+ // To creat HttpClient
56
+ var client = new HttpClient();
57
+
58
+ // Accesstoken
59
+ var accessToken = "XXXX";
60
+
61
+ // URL
62
+ var url = "https://api.line.me/v2/bot/message/broadcast";
63
+
64
+
65
+ var request = new HttpRequestMessage(HttpMethod.Post, url);
66
+ // Request Header
67
+ request.Headers.Add("Authorization", "Bearer " + accessToken);
68
+ var parameters = new Dictionary<string, string>()
69
+ {
70
+ { "messages", "Hello World" },
71
+ };
72
+
73
+ request.Content = new StringContent(
74
+ parameters.ToString(),
75
+ Encoding.UTF8,
76
+ "application/json"
77
+ );
78
+
79
+ await client.SendAsync(request);//ここでデバックで停止
80
+ ```
81
+
82
+ デバック結果
83
+ ![イメージ説明](a9298d00b78930b2d35317add26b5d17.png)
84
+
85
+ 値も指定通りになっている気がします。
86
+ 特にサーバーエラー等は出ていません。

2

更新

2019/10/28 02:03

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -33,4 +33,18 @@
33
33
 
34
34
 
35
35
  リクエストヘッダーをそのまま、リクエストボディに適用した形です。
36
- これだとよろしくないのでしょうか。
36
+ これだとよろしくないのでしょうか。
37
+
38
+ 追記⓵
39
+ リクエストヘッダーとボディを分けるところは完成しましたが、どのようにして
40
+ ヘッダーにAuthorizationを設定すればよいでしょうか。現在のコードは以下です。
41
+
42
+ ```C#
43
+ var json = @"{""type"":""text"", ""text"":Hello World}";
44
+ var content = new StringContent(json, Encoding.UTF8, @"application/json");
45
+
46
+ using (var client = new HttpClient())
47
+ {
48
+ var response = await client.PostAsync($"http://foo.example.com", content);
49
+ }
50
+ ```

1

更新

2019/10/28 01:10

投稿

Chandler_Bing
Chandler_Bing

スコア673

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 実現したいことは以下のサイトのマルチキャストメッセージを送るの部分です。
1
+ 実現したいことは以下のサイトのブロードキャストメッセージを送るの部分です。
2
2
  [Messaging APIリファレンス](https://developers.line.biz/ja/reference/messaging-api/#send-multicast-message)
3
3
 
4
4
  他サイトを参考に以下のようなコードを作成しました。