Mastodon의 클라이언트 앱을 .NET Core로 만들었습니다.

7097 단어 mastodonC#.NET
Mastodon이라는 "자유롭고""오픈 소스"(Twitter와 같은) SNS가 어쩐지 유행하고 원래 마스와 덮밥. cぉ우d@nullkal 씨가 세운 인스턴스 mstd 응. jp에 일본인이 많이 모여 축제 같아지고 있다.
  • ASCII.jp: Twitter의 라이벌? 실은, 새로운 「마스트돈」(Mastodon)이란! |엔도사키의 프로그래밍+일기

  • API도 물론 있고 .NET제의 API 라이브러리도 있었다. @ 카가스

    glacasa/Mastonet: C# Library for Mastodon htps // t. 코 / BwR9 응 1 qbd — ♣ ♥ ♠ ♦🍍 (@kagasu) 2017년 4월 12일


    에서 시도에이 "무s와. 뿌리 T"를 사용하여 mastodon.cloud 연방? 타임라인을 표시할 만큼의 콘솔 앱을 만들어 보았다.
  • amay077/MastoConsoleNetStandard: Mastodon 클라이언트용 샘플 콘솔 앱 for .NET Standard

  • API는 매우 간단하며 다음과 같은 간단한 코드로 TOOT 스트리밍 수신이 가능합니다.
    static async void RunAsync(string email, string password)
    {
        var instanceUrl = "mastodon.cloud";
    
        // MastodonClient.CreateApp で得たものを保存しとく必要があるけど面倒だから UnitTest(MastodonClientTests)のを使わせてもらった
        //var appRegistration = await MastodonClient.CreateApp(instanceUrl, "MastoConsoleStandard", Scope.Read);
        var appRegistration = new AppRegistration 
        {
            ClientId = "ぎっはぶをみてね",
            ClientSecret = "ぎっはぶをみてね"
        };
    
        var client = new MastodonClient(instanceUrl, appRegistration);
        var auth = await client.Connect(email, password);
        var streaming = client.GetPublicStreaming();
    
        // Register events
        streaming.OnUpdate += (_, e) =>
        {
            Console.WriteLine("--");
            Console.WriteLine($"{e.Status.CreatedAt.ToLocalTime().ToString()} - {e.Status.Account.AccountName}:");
            Console.WriteLine(e.Status.Content);
        };
    
        // Start streaming
        streaming.Start();
    }
    

    앱은 먼저 mastodon의 인스턴스에 MastodonClient.CreateApp로 "앱 등록"하여 AppRegistration를 얻을 필요가 있다.
    이것은 실제로는 ClientIdClientSecret로, 한 번 등록하면 저장해 사용한다.
    mastodon 의 디폴트의 구현에서는, 특별히 제한없이 곧바로 리스폰스가 되돌아 오는데, 코드를 변경해 인스턴스 관리자의 승인제등으로 할 수도 있을 것이다.

    그리고 앱의 등록은 mastodon 의 인스턴스마다 실시해야 하기 때문에, 예를 들어 현재 나돌고 있는 클라이언트 앱은, mastodon.cloud 에서는 사용할 수 있지만 mstdn.jp 에서는 사용할 수 없다, 라고 하는 일도 있다.

    「앱을 인스턴스에 등록하는」구조까지 갖춘 클라이언트 앱도 작성 가능하고, 아마로 q 포르 마스와 덮밥라는 앱은 그 하나라고 말해줘..

    mastodon의 사용자는 인스턴스마다 다르므로, 그 인스턴스로 만든 email/password로 connect 한다.
    그리고는, OnUpdate 로 스트림을 수신해 두고, Start 하면 된다.

    Masto.NET이 .NET Standard를 지원하므로 .NET Standard 실행 환경,
    Mac/Linux의 경우 .NET Core가 설치된 환경에서 작동합니다.

    적절하게 책무 분할된 Twitter 클라이언트라면, 그렇게 번거롭게 mastodon 클라이언트 앱이 될 수 있을지도.
    전술한 바와 같이 복수 인스턴스 대응은 필요하지만. 앱이 해당 인스턴스와 ClientIdClientSecret를 저장하기 위해 서버 측 (mBaaS)이 필요하다고 생각합니다.

    일단 저도 계정을 만들었습니다 → h tps : // 마스와 돈. cぉうd/@아마 y077
    mstdn.jp에도 만들었지만, 메인은 이쪽으로. 열심히 하는 사람은 응원하고 싶다응원한 .

    좋은 웹페이지 즐겨찾기