1
1
using System ;
2
2
using System . Net . Http ;
3
+ using System . Net . Http . Headers ;
3
4
using System . Threading . Tasks ;
4
5
using Messenger . Client . Config ;
5
6
using Messenger . Client . Errors ;
8
9
9
10
namespace Messenger . Client . Services . Impl
10
11
{
11
- public class MessengerMessageSender : IMesengerMessageSender
12
+ public class MessengerMessageSender : IMessengerMessageSender
12
13
{
13
14
private const String UrlTemplate = "https://graph.facebook.com/v2.6/me/messages?access_token={0}" ;
14
15
15
16
private readonly HttpClient client ;
16
17
private readonly IMessengerSerializer serializer ;
17
18
18
- public MessengerMessageSender ( HttpClient client , IMessengerSerializer serializer )
19
+ public MessengerMessageSender ( IMessengerSerializer serializer )
19
20
{
20
- this . client = client ;
21
+ client = new HttpClient ( ) ;
21
22
this . serializer = serializer ;
22
23
}
23
24
24
- public async Task < MessengerResponse > SendAsync ( MessengerMessage message , MessengerUser recepient )
25
+ public Task < MessengerResponse > SendAsync ( MessengerMessage message , MessengerUser recipient )
25
26
{
26
- var url = String . Format ( UrlTemplate , MessengerConfig . AccessToken ) ;
27
- var request = new { recepient , message } ;
27
+ return SendAsync ( message , recipient , MessengerConfig . AccessToken ) ;
28
+ }
29
+
30
+ public async Task < MessengerResponse > SendAsync ( MessengerMessage message , MessengerUser recipient , String accessToken )
31
+ {
32
+ var url = String . Format ( UrlTemplate , accessToken ) ;
33
+ var request = new MessengerSendMessageRequest { Recipient = recipient , Message = message } ;
28
34
29
35
var content = new StringContent ( serializer . Serialize ( request ) ) ;
36
+ content . Headers . ContentType = new MediaTypeHeaderValue ( "application/json" ) ;
30
37
try
31
38
{
32
39
var response = await client . PostAsync ( url , content ) ;
@@ -43,5 +50,6 @@ public async Task<MessengerResponse> SendAsync(MessengerMessage message, Messeng
43
50
throw new MessengerException ( exc ) ;
44
51
}
45
52
}
53
+
46
54
}
47
55
}
0 commit comments