Twitter의 DM을 전송하는 배치 Ver.C#

15277 단어 트위터C#


Program.cs
using System;
using CoreTweet;
using Newtonsoft.Json;

namespace ConsoleApp1
{
    #region JsonClass
    public class Target
    {
        public long recipient_id { get; set; }
    }

    public class Media
    {
        public long id { get; set; }
    }

    public class Attachment
    {
        public string type { get; set; }
        public Media media { get; set; }
    }

    public class MessageData
    {
        public string text { get; set; }
        public Attachment attachment { get; set; }
    }

    public class MessageCreate
    {
        public Target target { get; set; }
        public MessageData message_data { get; set; }
    }

    public class Event
    {
        public string type { get; set; }
        public MessageCreate message_create { get; set; }
    }

    public class Root
    {
        public Event @event { get; set; }
    }
    #endregion

    class Program
    {
        static void Main(string[] args)
        {
            //今日の日付文字列を取得
            string yyyyMMdd = DateTime.Now.ToString("yyyyMMdd");

            //ユーザID(DMを送信するuser_id)
            Int64 useID = <ユーザID;
            //メッセージ
            string dmMessage = @"今日の一枚😘";
            //画像ファイルパス
            string imgFilePath = @"C:\Users\<画像フォルダパス>\img_" + yyyyMMdd + ".jpg";

            //API key
            string apiKey = "<APIキー>";
            //API secret key
            string apiSecretKey = "<APIシークレットキー>";
            //Access token
            string accessToken = "<アクセストークン>";
            //Access token secret
            string accessTokenSecret = "<アクセストークンシークレット>";

            //認証情報
            var tokens = CoreTweet.Tokens.Create(apiKey, apiSecretKey, accessToken, accessTokenSecret);

            //画像ファイルを取得
            System.IO.FileInfo imgFileInfo = new System.IO.FileInfo(imgFilePath);
            //画像をアップロードしてmedia_idを取得
            var mediaId = tokens.Media.Upload(imgFileInfo);

            //JSONオブジェクトを生成
            Media jsonMedia = new Media();
            jsonMedia.id = Int64.Parse(mediaId.ToString());
            Attachment jsonAttachment = new Attachment();
            jsonAttachment.type = "media";
            jsonAttachment.media = jsonMedia;
            Target jsonTarget = new Target();
            jsonTarget.recipient_id = useID;
            MessageData jsonMessageData = new MessageData();
            jsonMessageData.text = dmMessage;
            jsonMessageData.attachment = jsonAttachment;
            MessageCreate jsonMessageCreate = new MessageCreate();
            jsonMessageCreate.target = jsonTarget;
            jsonMessageCreate.message_data = jsonMessageData;
            Event jsonEvent = new Event();
            jsonEvent.type = "message_create";
            jsonEvent.message_create = jsonMessageCreate;
            Root jsonRoot = new Root();
            jsonRoot.@event = jsonEvent;

            //JSONを文字列変換
            var jsonStr = JsonConvert.SerializeObject(jsonRoot);
            //バイト配列に変換
            byte[] jsonData = System.Text.Encoding.UTF8.GetBytes(jsonStr);

            //DM送信
            tokens.PostContent("https://api.twitter.com/1.1/direct_messages/events/new.json", "application/json", jsonData);
        }
    }
}

Follow
↑ 잘 부탁드립니다



▼ 참고 링크! 감사합니다

htps : // 에후ぇct. 하테나 bぉg. 코m/엔트리/2018/09/16/023653 - TwitterAPI를 사용할 때까지

htps : // bg. f 코지. m/2018/07240244. HTML - JSON 요청 샘플

htps : // g Reen s Pase. 엔후 / mt / 2011/05/19 /와 r_ap_dm. HTML - 액세스 권한 오류시

htps //j 2c rp. 코 m / j 그렇습니다 - c 샤 rp - JSON 문자열을 C# 클래스로 만듭니다

h tps : // / d와 ぃ. 코m/ - Twitter 사용자 ID 획득

h tp // 이것과 t. 기주 b. 이 / cs / c ぁ s 이것과 〇 t_1_1 이것 _1_1과 켄 s 바세. HTML - CoreTweet 참조

h tps : // 그리고 ls. mbsys. 이 m/로 ゔぉぉp멘 t_ 와 ぇ s/j そーべあうちふぃえ r. php - JSON 성형


좋은 웹페이지 즐겨찾기