OSDN Git Service

TwitterApi.StatusesUpdateメソッドに新たに指定可能となったパラメータを追加
authorKimura Youichi <kim.upsilon@bucyou.net>
Sat, 24 Sep 2016 06:09:56 +0000 (15:09 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 11 Nov 2017 21:06:20 +0000 (06:06 +0900)
https://dev.twitter.com/overview/api/upcoming-changes-to-tweets に記載
されている下記のパラメータを引数に追加:

 * auto_populate_reply_metadata
 * exclude_reply_user_ids

OpenTween.Tests/Api/TwitterApiTest.cs
OpenTween/Api/TwitterApi.cs

index 49e60a9..d6d36aa 100644 (file)
@@ -221,13 +221,16 @@ namespace OpenTween.Api
                             { "tweet_mode", "extended" },
                             { "in_reply_to_status_id", "100" },
                             { "media_ids", "10,20" },
+                            { "auto_populate_reply_metadata", "true" },
+                            { "exclude_reply_user_ids", "100,200" },
                         })
                 )
                 .ReturnsAsync(LazyJson.Create(new TwitterStatus()));
 
                 twitterApi.apiConnection = mock.Object;
 
-                await twitterApi.StatusesUpdate("hogehoge", replyToId: 100L, mediaIds: new[] { 10L, 20L })
+                await twitterApi.StatusesUpdate("hogehoge", replyToId: 100L, mediaIds: new[] { 10L, 20L },
+                        autoPopulateReplyMetadata: true, excludeReplyUserIds: new[] { 100L, 200L })
                     .IgnoreResponse()
                     .ConfigureAwait(false);
 
index c708caf..40b142c 100644 (file)
@@ -126,7 +126,8 @@ namespace OpenTween.Api
             return this.apiConnection.GetAsync<TwitterStatus>(endpoint, param, "/statuses/show/:id");
         }
 
-        public Task<LazyJson<TwitterStatus>> StatusesUpdate(string status, long? replyToId, IReadOnlyList<long> mediaIds)
+        public Task<LazyJson<TwitterStatus>> StatusesUpdate(string status, long? replyToId, IReadOnlyList<long> mediaIds,
+            bool? autoPopulateReplyMetadata = null, IReadOnlyList<long> excludeReplyUserIds = null)
         {
             var endpoint = new Uri("statuses/update.json", UriKind.Relative);
             var param = new Dictionary<string, string>
@@ -141,6 +142,10 @@ namespace OpenTween.Api
                 param["in_reply_to_status_id"] = replyToId.ToString();
             if (mediaIds != null && mediaIds.Count > 0)
                 param.Add("media_ids", string.Join(",", mediaIds));
+            if (autoPopulateReplyMetadata != null)
+                param["auto_populate_reply_metadata"] = autoPopulateReplyMetadata.Value ? "true" : "false";
+            if (excludeReplyUserIds != null)
+                param["exclude_reply_user_ids"] = string.Join(",", excludeReplyUserIds);
 
             return this.apiConnection.PostLazyAsync<TwitterStatus>(endpoint, param);
         }