From 9a4b097cb0430d88c31b468f98550c007edb8bc7 Mon Sep 17 00:00:00 2001 From: Kimura Youichi Date: Thu, 18 May 2017 01:48:51 +0900 Subject: [PATCH] =?UTF-8?q?=E4=BA=8B=E5=89=8D=E3=81=AB=E7=99=BA=E8=A1=8C?= =?UTF-8?q?=E3=81=97=E3=81=9FMastodon=E3=81=AEclient=5Fid,=20client=5Fsecr?= =?UTF-8?q?et=E3=81=AE=E7=B5=84=E3=82=92ApplicetionSettings=E5=86=85?= =?UTF-8?q?=E3=81=AB=E8=A8=98=E8=BF=B0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenTween/ApplicationSettings.cs | 14 ++++++++++++++ OpenTween/Mastodon.cs | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/OpenTween/ApplicationSettings.cs b/OpenTween/ApplicationSettings.cs index e7a29730d..1c2685542 100644 --- a/OpenTween/ApplicationSettings.cs +++ b/OpenTween/ApplicationSettings.cs @@ -114,6 +114,20 @@ internal static class ApplicationSettings public const string TwitterConsumerKey = "zIoJPq3FsuViPTAs89FetDHYz"; public const string TwitterConsumerSecret = "prTAs2fqLv12nHxlMoLQZT8AkpZt0yYb8A7ktGS2VYeRj0TddS"; + //===================================================================== + // Mastodon + + /// + /// Mastodon インスタンス毎に事前に発行した client_id, client_secret の組 + /// + /// + /// ここに含まれていないインスタンスでは によって + /// アプリケーションの登録を都度行います + /// + public static readonly IReadOnlyDictionary> MastodonClientIds = new Dictionary> + { + }; + //===================================================================== // Foursquare // https://developer.foursquare.com/ から取得できます。 diff --git a/OpenTween/Mastodon.cs b/OpenTween/Mastodon.cs index daabc1335..f13961342 100644 --- a/OpenTween/Mastodon.cs +++ b/OpenTween/Mastodon.cs @@ -52,6 +52,15 @@ public void Initialize(MastodonCredential account) public static async Task RegisterClientAsync(Uri instanceUri) { + if (ApplicationSettings.MastodonClientIds.TryGetValue(instanceUri.Host, out var client)) + { + return new MastodonRegisteredApp + { + ClientId = client.Item1, + ClientSecret = client.Item2, + }; + } + using var api = new MastodonApi(instanceUri); var redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob"); var scope = "read write follow";