前準備

GASからTwitterのアカウントを操作するためには開発者用アカウントの取得などの前準備が必要です。こちらの記事を参考にしてください。

DMする

DMのAPIを叩くためには任意のアカウントに紐づくuserIDが必要です。因みにscreenNameとuserIdは違います。screen_nameはメンションするときなどにおなじみの「@」から始まる文字列です。それに対してuserIdは数字だけの文字列です。詳しくはTwitterAPIの公式ドキュメントを参照してください。
今回紹介するgasのスクリプトはscreen_nameからuser_idを取得し、そのuser_id宛にDMを送信するという挙動となっています。

1. screen_nameからuser_idを取得する

function getUserId() {
  var service = twitter.getService();
  var screenName = "screen_name" //@screen_nameさんにDMを送る場合
  var requestURL = "https://api.twitter.com/1.1/users/lookup.json?screen_name=" + screenName
  var response = service.fetch(requestURL, {
    method: "get",
    contentType: 'application/json'
  });
  var o = JSON.parse(response.getContentText());
  var user_id = o[0].id_str //配列で帰ってくるのでそのうちの最初の要素のuser_idを取得する
  
  newDirectMessage(user_id) //後述します
}

2. user_idに紐づくTwitterアカウント対してDMを送る

function newDirectMessage(user_id){
  try{
    var service = twitter.getService();
    var payload = JSON.stringify({
      event: {
        type: 'message_create',
        message_create: {
          target: {
            recipient_id: String(user_id)  //先ほど取得したuserId
          },
          message_data: { text: "こんにちは" }  //メッセージ内容を定義
        }
      }
    });
    var response = service.fetch('https://api.twitter.com/1.1/direct_messages/events/new.json',{
      method: 'POST',
      contentType: 'application/json',
      payload: payload
    });
    return response;
  } catch(e) {
    Logger.log('Exception:'+e);
  }
}