Twitter의 DM을 전송하는 배치 Ver.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 성형
Reference
이 문제에 관하여(Twitter의 DM을 전송하는 배치 Ver.C#), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chiaki1220jp/items/edfaa47a348b91292d5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)