Recent Posts

Pages: [1] 2 3 ... 10
1
Skip to content
บริหารงานแบบคนไอที
Google sheets | Productivity | Notion | Tech &  App Review
Google Sheets Template
Google Sheets Tip
Appsheet Template
Airtable Template
Notion
Tech and Apps Review
Productivity Hack


แจก Script ระบบจัดการ Google Calendar ผ่าน Line
adminMay 22, 20252 Commentson แจก Script ระบบจัดการ Google Calendar ผ่าน Line

อยากจะจัดการอีเวนต์ใน Google  Calendar แต่ต้องสลับแอปไปมาให้วุ่นวาย?
หรืออยากให้ทีมงานในกลุ่ม LINE เห็นตารางงานประจำวันใน Google Calendar ได้โดยอัตโนมัติทุกเช้า?
โพสนี้ผมจะมาแจก Script ที่สามารถเชื่อมต่อ Google Calendar เข้ากับ LINE ได้อย่างง่ายดาย จัดการทุกอย่างได้ผ่านแอป LINE ที่ใช้งานอยู่เป็นประจำ!

ประโยชน์ของ Script นี้

รับการแจ้งเตือนตารางงานประจำวันใน LINE: ระบบจะแจ้งให้ทราบว่าวันนี้มีอีเวนต์หรืองานอะไรบ้างในตอนเช้า
เพิ่ม/ลบอีเวนต์ผ่าน LINE ได้ทันที: ไม่ต้องเปิดแอป Google Calendar สามารถพิมพ์คำสั่งใน LINE เพื่อสร้างหรืองานได้เลย
ทีมงานรับทราบข้อมูลพร้อมกัน: หากใช้ในกลุ่ม LINE สมาชิกในกลุ่มจะเห็นการเพิ่มหรือลบอีเวนต์ใหม่ๆ ได้ทันที
สิ่งที่ต้องเตรียมก่อนเริ่มต้นปรับแต่ง Script

Calendar ของ Google Calendar ที่ต้องการจะเชื่อมกับระบบใน Script
บัญชี LINE Official Account (LINE OA)
หลักจากที่เตรียมทุกอย่างพร้อมแล้วให้เราทำการสร้าง Script ใหม่ขึ้นมาใน Google App Script โดยการพิมพ์ script.new ที่ url ของ browser ก็จะพาทุกคนมาที่หน้านี้


Screenshot
หลักจากนั้นให้ทำการ copy script ด้านล่างนี้ไปวางที่หน้า Google App Script ของเราได้ทันที
โดย Script นี้จะเป็น script ที่ช่วยให้เราสามารถทำการเพิ่ม ลบ Event ในปฏิทิน Google Calendar ของเราผ่านทางไลน์

// === CONFIG ===
const LINE_TOKEN = 'YOUR_LINE_CHANNEL_ACCESS_TOKEN';
const LINE_USER_ID = 'YOUR_LINE_USER_ID'; // สำหรับ push message (กรณีส่งสรุป event รายวัน)
const CALENDAR_ID = 'primary'; // ใช้ 'primary' หรือ calendar ID เฉพาะก็ได้

// === MAIN ===
function doPost(e) {
  const data = JSON.parse(e.postData.contents);
  const message = data.events[0].message.text.trim();

  // ? ถ้าไม่ขึ้นต้นด้วย "สร้าง :" หรือ "ลบ :" ? ไม่ตอบอะไรเลย
  if (!message.startsWith("สร้าง :") && !message.startsWith("ลบ :")) return;

  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);

  // === 🗑 ลบ Event ===
  if (message.startsWith("ลบ :")) {
    const deleteName = message.match(/ลบ ?: ?(.*)/)?.[1]?.trim();
    if (!deleteName) return;

    const today = new Date();
    const next7 = new Date();
    next7.setDate(today.getDate() + 7);
    const events = calendar.getEvents(today, next7);
    const eventToDelete = events.find(e => e.getTitle() === deleteName);

    if (eventToDelete) {
      eventToDelete.deleteEvent();
      replyToLine(data, `🗑? ลบ Event "${deleteName}" เรียบร้อยแล้ว`);
    } else {
      replyToLine(data, `?? ไม่พบ Event ชื่อ "${deleteName}" ใน 7 วันข้างหน้า`);
    }
    return;
  }

  // === ? สร้าง Event ===
  const name = message.match(/สร้าง ?: ?(.*)/)?.[1]?.trim();
  const timeOnly = message.match(/(?:^|\n)เวลา ?: ?([0-9]{4}-[0-9]{2}-[0-9]{2})/)?.[1]?.trim();
  const start = message.match(/(?:^|\n)เวลาเริ่ม ?: ?(.*)/)?.[1]?.trim();
  const end = message.match(/(?:^|\n)เวลาจบ ?: ?(.*)/)?.[1]?.trim();

  if (!name) {
    replyToLine(data, "?? กรุณาระบุชื่อ Event เช่น:\nสร้าง : ไปส่งของ");
    return;
  }

  if (start && end) {
    // ? แบบมีเวลา
    const startDate = new Date(start);
    const endDate = new Date(end);
    if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
      replyToLine(data, "?? เวลาไม่ถูกต้อง กรุณาใช้:\nเวลาเริ่ม : yyyy-mm-dd HH:mm\nเวลาจบ : yyyy-mm-dd HH:mm");
      return;
    }
    calendar.createEvent(name, startDate, endDate);
    replyToLine(data, `? สร้าง Event "${name}" เวลา ${formatTime(startDate)} - ${formatTime(endDate)} เรียบร้อยแล้ว`);
    return;
  }

  if (timeOnly) {
    // ? แบบทั้งวันในวันที่ระบุ
    const date = new Date(timeOnly);
    if (isNaN(date.getTime())) {
      replyToLine(data, "?? วันที่ไม่ถูกต้อง โปรดใช้รูปแบบ: เวลา : yyyy-mm-dd");
      return;
    }
    calendar.createAllDayEvent(name, date);
    replyToLine(data, `? สร้าง Event "${name}" แบบทั้งวันในวันที่ ${formatDate(date)} เรียบร้อยแล้ว`);
    return;
  }

  // ? แบบทั้งวันวันนี้
  calendar.createAllDayEvent(name, new Date());
  replyToLine(data, `? สร้าง Event "${name}" แบบทั้งวันในวันนี้เรียบร้อยแล้ว`);
}

// === 🔁 ส่งข้อความกลับ LINE ===
function replyToLine(data, msg) {
  const replyToken = data.events[0].replyToken;
  const payload = {
    replyToken: replyToken,
    messages: [{ type: 'text', text: msg }]
  };

  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + LINE_TOKEN
    },
    payload: JSON.stringify(payload)
  });
}

// === 🕓 ฟอร์แมตเวลา/วันที่ ===
function formatTime(date) {
  return Utilities.formatDate(date, "Asia/Bangkok", "HH:mm");
}

function formatDate(date) {
  return Utilities.formatDate(date, "Asia/Bangkok", "yyyy-MM-dd");
}

หลังจากนั้นเราจำเป็นที่จะต้องเปลี่ยนค่า 3 ค่าด้านบนสุดก่อนดังต่อไปนี้

ค่า LINE_TOKEN ให้เราใส่ค่า Channel Access token จากหน้า Line Developer
ค่า LINE_USER_ID เป็น id ของกลุ่มหรือ user line ที่จะให้ script ส่งข้อความแจ้งเตือนไป โดยเราสามารถนำ link webhook จาก webhook.site ไปผูกใน lineOA แล้วให้ใช้ user ที่เราต้องการจะส่งข้อมูลทักเข้าไปเพื่อแสดง userID ของ user นั้นๆได้เลย
ค่า CALENDAR_ID ให้เราไปที่ Google Calendar ที่เพิ่งสร้าง คลิกจุด 3 จุดข้างชื่อปฏิทิน เลือก ?การตั้งค่าและการแชร์? เลื่อนลงมาจะเจอ ?รหัสปฏิทิน?
หลังจากที่เราเปลี่ยนค่าเรียบร้อยแล้วให้คลิกที่ ?การทำให้ใช้งานได้? และเลือก ?การทำให้ใช้งานได้รายการใหม่? เพื่อทำการสร้าง link สำหรับนำไปผูกใน webhook ในหน้า Line Developer ได้เลย


Screenshot
แค่นี้ระบบของเราก็สามารถใช้งานได้แล้ว โดยเคสในการใช้งานสามารถสั่งงานผ่านไลน์ของเราได้ดังต่อไปนี้เลย

รูปแบบ   ตัวอย่างข้อความใน LINE
? ทั้งวันวันนี้   สร้าง : เข้าร้านเร็ว
? ทั้งวันวันที่กำหนด   สร้าง : ไปส่งของ
เวลา : 2025-05-22
? มีเวลาเริ่ม/จบ   สร้าง : ประชุมทีม
เวลาเริ่ม : 2025-05-22 13:00
เวลาจบ : 2025-05-22 14:30
🗑 ลบ Event   ลบ : ประชุมทีม
ส่วนในกรณีต้องให้ระบุแจ้งเตือน Event ประจำวันเราสามารถทำการเพิ่ม script ดังต่อไปนี้ต่อในหน้า script ของเราได้ทันที

function sendDailyEvents() {
  const calendar = CalendarApp.getCalendarById(CALENDAR_ID);
  const today = new Date();
  const events = calendar.getEventsForDay(today);

  if (events.length === 0) {
    sendLinePush("📅 วันนี้ไม่มี Event นะครับ");
    return;
  }

  let msg = "📅 Event วันนี้:\n";
  events.forEach(event => {
    msg += `\n🕒 ${event.getTitle()}\nเวลา: ${formatTime(event.getStartTime())} - ${formatTime(event.getEndTime())}`;
  });

  sendLinePush(msg);
}

function sendLinePush(msg) {
  const payload = {
    to: LINE_USER_ID,
    messages: [{ type: 'text', text: msg }]
  };

  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: 'Bearer ' + LINE_TOKEN
    },
    payload: JSON.stringify(payload)
  });
}
หลังจากนั้นเราก็สามารถทำการ Run function sendDailyEvents เพื่อทำการส่งข้อมูล event ทั้งหมดในวันนี้เข้า line ได้ทันที

โดยถ้าต้องการให้ระบบ Google App Script ทำการ run function sendDailyEvents ให้เราแบบอัตโนมัติ ก็ให้เราทำการสร้าง trigger ได้ที่บริเวณนี้ของหน้า Google App Script


Screenshot
หวังว่าโพสต์นี้จะเป็นประโยชน์นะครับ ลองนำไปตั้งค่าและใช้งานกันดู!

โดยถ้าต้องการดูวิธีการทำระบบจัดการ Google Calendar ผ่าน Line แบบ step by step ก็สามารถดูได้ที่คลิปดังต่อไปนี้เลยครับ

💳 ชอบคลิปที่ช่วยเพิ่มประสิทธิภาพการทำงานแบบนี้สามารถสมัครสมาชิกช่องได้ที่
https://www.youtube.com/channel/UChxmhkD8uSSzUOkfMO_p5oQ/join

🎥 อุปกรณ์ที่ผมใช้

กล้อง Sony ZV-E10 kit 16-50mm
Mouse Logitech MX Master 3s
MacBook Air M2
ไมค์ wireless Saramonic Blink 500
เก้าอี้ Anda Seat X-Air Pro Ergonomic Gaming Chair
แขนจับจอ Anda Seat Stealth A6L Ergonomic Monitor Arm
ไมโครโฟน AKG Lyra
ไฟส่องหน้าจอ Xiaomi Light Bar

<span class="nav-subtitle screen-reader-text">Page</span>

Previous Post
สร้างแอพพลิเคชั่นแบบไม่ต้องเขียนโค๊ด ด้วย CanvaAI และ Firebase

Next Post
แจกฟรี! ระบบบริหารจัดการรถขนส่ง v2025
Related Posts

แชร์ 9 เทคนิคการเรียนรู้ด้วยเทคโนโลยี ที่ช่วยให้ผมเรียนรู้ได้ตลอดปี 2024 แม้จะว่าจะสุดยุ่งวุ่นวาย!
โพสนี้จะมาแชร์เทคนิคและเทคโนโลยีต่างๆ ที่ช่วยให้ผมสามารถเรียนรู้ได้ตลอดเวลา จนสามารถอ่านหนังสือจนจบได้กว่า 10 เล่ม รวมทั้งเรียนรู้ในเรื่องต่างๆได้พร้อมกันในตลอดปี 2024 นี้ครับ
adminJan 4, 2025
2 Comments
Kelvin
May 31, 2025 at 2:47 pm
I tried to run function sendDailyEvents() { and function sendLinePush(msg) {, but when i click run, it show error as below:

Exception: Request failed for https://api.line.me returned code 401. Truncated server response: {?message?:?Authentication failed. Confirm that the access token in the authorization header is valid.?} (use muteHttpExceptions option to examine full response)
sendLinePush @ Code.gs:128

I dont know how to fix, please kindly help suggest.

Reply
admin
June 2, 2025 at 9:54 pm
Seem there is something wrong with your token, try reissue your token and update your script again.

Reply
Leave a Reply
Your email address will not be published. Required fields are marked *

Comment
*

Name
*

Email
*

Website

 Save my name, email, and website in this browser for the next time I comment.

Are you human? Please solve:Captcha



Google Sheets Template
Google Sheets Tip
Notion
Appsheet Template
Airtable Template
บริการออกแบบเว็บไซต์
2
วันนี้ได้ลองระบบ VMS (vehicle monitoring system) สำหรับรถยนต์ทะเบียนไทยที่จะเข้ามาเลเซียแล้ว ขอแชร์ค่ะว่าขั้นตอนเป็นไงบ้าง
1) ระบบ VMS นี้จะเริ่มใช้จริงวันที่ 1 มกรานี้เป็นต้นไป แต่ช่วงนี้ทดลองใช้ก่อนที่ด่านมาเลเซียฝั่งเบตง  เป็นระบบของศุลกากร มาเลเซีย  ส่วน ICP หรือป้ายวงกลมชั่วคราวของมาเลเซียก็ยังคงต้องทำเหมือนเดิมกับทาง JPJ เมื่อจะเข้ามาเลเซีย
2) เอกสารที่ต้องใช้คือ 
     - พาสปอร์ต
     - ทะเบียนรถที่แปลเป็นภาษาอังกฤษ
     - ประกันภัยรถยนต์ของมาเลเซีย
3) เข้าเวบ https://vms.customs.gov.my/ เพื่อลงทะเบียนก่อน  จากนั้นลอคอินเข้าใช้งาน และกรอกข้อมูลตามที่กำหนดไว้
กรอกเสร็จแล้วก็กดปุ่ม submit จากนั้น ก็จะได้ เอกสารที่มี QR code อยู่มุมด้านบน จะปรินต์เก็บไว้หรือเก็บในมือถือก็ได้
4) นำเอกสารที่มี QR code นี้ให้เจ้าหน้าที่สแกน ก็เสร็จสิ้นกระบวนการ
5) รถทะเบียนไทยให้สิทธิใช้ในมาเลเซียแต่ละครั้งได้ไม่เกิน 3 เดือน  ระบบนี้จะตรวจสอบได้ว่ารถแต่ละคันอยู่เกินกำหนดหรือไม่
6) เมื่อจะนำรถกลับไทยก็ต้องโชว์ QR Code ให้เจ้าหน้าที่สแกนว่ามีการนำรถออกจากมาเลเซียแล้ว
7) แต่ถ้าจะนำรถเข้าไปอีก ก็ต้องสแกน QR code อีกครั้ง โดยเราต้องอัพเดทวันหมดอายุของกรมธรรม์ประกันภัยใหม่ที่ซื้อ
😎 คนที่มีวีซ่าสามารถซื้อประกันได้นานสุด 6 เดือน แต่ต้องนำรถเข้ามารีนิว ICP และ VMS ทุกสามเดือน
สรุป ต้องเจอกับเจ้าหน้าที่ 3 หน่วย คือ 1) จนท ของ JPJ ในการทำใบ ICP  2) อิมเมเกรชั่นในการจอปพาสปอร์ต  และ 3) ศุลกากรหรือ Custom ที่จะตรวจของในรถอยู่แล้ว เพื่อให้สแกนระบบ VMS
3
ล้างลิ้นปีกผีเสื้อเสร็จ ก็ทำตามนี้ได้เลยครับ

Step 01 : บิดกุญแจ Off
Step 02 : ถอดขั่วแบต ขั่วลบนะครับ
Step 03 : บิดกุญแจ On
Step 04 : เปิดไฟหน้า ทิ้งไว้ 10 นาที [เปิดไว้แต่ไฟหน้าไม่ติดหรอกครับ ต้องการให้มันกินกระแสไฟฟ้าให้หมดไม่เหลือสำรองไปเลี้ยง ECU]
Step 05 : หลังจาก 10 นาที ก็ปิดไฟหน้า
Step 06 : บิดกุญแจ Off
Step 07 : ใส่ขั่วแบต ขั่วลบที่ถอดมานั้นแหละกลับเข้าทีครับ
Step 08 : บิดกุญแจ On
Step 09 : กดคันเร่งให้สุด และ ปล่อย ทำ 2 ครั้ง
Step 10 : กดเบรคให้สุด และ ปล่อย ทำ 2 ครั้ง
Step 11 : บิดกุญแจ Off
Step 12 : Start เครื่อง
Step 13 : กดคันเร่งและเลี้ยงรอบประมาณ 2000 รอบ โดยที่ไม่เปิดแอร์ และให้สังเกตุ พัดลมหม้อน้ำทำงาน 2 รอบ
Step 14 : ปล่อยเครื่องเดินเบา สักครู่ 2 นาที และดับเครื่อง
Step 15 : Start เครื่อง แล้วเปิดแอร์ ปล่อยเครื่องเดินเบาไปสัก 5 นาที
Step 16 : ดับเครื่อง ตอนนี้ ECU เรียนรู้ค่าเริ่มต้นครบหมดแล้ว
Step 17 : สามารถใช้งานปกติได้แล้ว และถ้าต้องการให้รถขับแบบ style ไหนก็นำไปใช้งานเลย และอย่างลืมตังกระจก
4
สาเหตุ
     เกิดจากการย้าย server แล้ว chatset ผิดปกติจะเกิดจากเดิมใช้ latin1 แล้วมาใช้ utf8 หรือ tis620
dump database จากเรื่องเดิมลองเปิดไฟล์ที่ dump มาว่าอ่านจาก terminal อ่านภาษาไทยได้หรือไม่
ปกติจะอ่านไม่ได้import เข้า mysql ของเครื่องตัวเองก่อน
     ปกติจะเป็นตัวยึกยือ แต่ไม่ใช่ ??? ถ้าดูจาก phpmyadmin 

วิธีแก้ปัญหา
1. ?mysqldump -v -h localhost -u root -p  --default-character-set=utf8 --skip-set-charset  thaiphuk_pro > thaiphuk_pro.sql 
2. replace utf8 tis620 -- /home/prasit/tmp/smilepet_demo1.sql
หมายเหตุ บางครั้งการ import อาจจะมีพวก latin ผผสมไปกับข้อความอีก
การ replace อาจจะไม่ได้ผล ผมใช้ Aptana สร้าง Project ขึ้นมา แล้ว นำไฟล์ sql ที่จะ import มาตั้ง charset เป็น TIS-620 แล้วใช้การ copy ข้อความ ไปไส่ไฟล์ใหม่ ที่เป็น utf8 แล้วค่อย import


การ import database จากไฟล์

mysql -v --default-character-set=tis620 -h localhost -u root -p smilepet_forums < /home/prasit/tmp/smilepet_forums.sql

database ecomsupp_mlm

ตอนนี้อยู่บนเครื่อง payap ใช้ phpmyadmin backup แล้วมีปัญหา ภาษาไทย ให้ใช้ mysqldump ไปก่อน

root@payap [/home/ecomsupp/database_backup]# mysqldump --default-character-set=utf8 --skip-set-charset  ecomsupp_mlm > ecomsupp_mlm_2011_09_22.sql
root@payap [/home/ecomsupp/database_backup]# tar -cvzf ecomsupp_mlm_2011_09_22.sql.tar.gz ecomsupp_mlm_2011_09_22.sql
5
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";

// เชื่อมต่อฐานข้อมูล
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8"); // ตั้งค่าภาษาให้รองรับ UTF-8

if ($conn->connect_error) {
    die("เชื่อมต่อฐานข้อมูลล้มเหลว: " . $conn->connect_error);
}

// คำสั่ง SQL
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);

// ใช้ mysqli_fetch_array() เพื่อดึงข้อมูล
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "ID: " . $row["id"] . " - ชื่อ: " . $row["name"] . " - อีเมล: " . $row["email"] . "<br>";
}

// ปิดการเชื่อมต่อ
$conn->close();
?>
6
PHP มีการสนับสนุนโค้ดเก่าอย่างดี ซึ่งแม้ว่าจะเป็นประโยชน์ในแง่ของความเข้ากันได้ แต่ก็ทำให้บางโปรเจกต์ยังคงใช้ฟังก์ชันที่ล้าสมัย ซึ่งอาจมีปัญหาด้านความปลอดภัยหรือประสิทธิภาพ

// โค้ดเก่าที่ใช้ฟังก์ชัน mysql_* ซึ่งถูกเลิกใช้ใน PHP เวอร์ชันใหม่
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("testdb", $conn);

$result = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_assoc($result)) {
    echo $row['username'];
}

// ฟังก์ชัน mysql_* ถูกเลิกใช้แล้วใน PHP 7
แนวทางการปรับปรุง เปลี่ยนมาใช้ MySQLi หรือ PDO เพื่อเพิ่มความปลอดภัยและประสิทธิภาพของโปรเจกต์

$conn = new mysqli("localhost", "root", "", "testdb");
$result = $conn->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    echo $row['username'];
}
สรุป
PHP เวอร์ชันใหม่ ๆ มาพร้อมกับฟีเจอร์และการปรับปรุงที่ช่วยแก้ไขปัญหาต่าง ๆ ที่เคยเกิดขึ้นใน PHP เวอร์ชันเก่า ทำให้การพัฒนาเว็บด้วย PHP ยังคงทันสมัย ปลอดภัย และง่ายต่อการบำรุงรักษาในระยะยาว การนำเทคนิคใหม่ ๆ เข้ามาใช้จะช่วยให้คุณสามารถพัฒนาเว็บที่มีคุณภาพสูงและมีความยืดหยุ่นในการปรับตัวตามความต้องการที่เปลี่ยนแปลงไปได้ดีขึ้น

7
https://www.i-step-education.com/
https://www.facebook.com/istepeducation/?locale=th_TH


------------------------------------------------------------------------

อยู่สาธุประดิษฐ์ซอย28เอาซอย20เมตรซ้ายมือมีที่จอดรถเยอะรอรับเด็กๆได้คุณคูรใจดีสอนเก่งค่ะ
----------------------------------------------------------------------


----------------------------------------------------------------------


----------------------------------------------------------------------


มีคุณครูอยู่ซอยสาธุ 57 ค่ะ ลูกเราก็ 5 ขวบเหมือนกันคุณครูจะสอนวันเสาร์ค่ะเดือนนึง 4 ครั้ง คุณครูใจดีน่ารักค่ะ สนใจทักมาสอบถามได้ค่ะเดี๋ยวจะบอกรายละเอียดให้

----------------------------------------------------------------------






----------------------------------------------------------------------

8
EveryThing is SEO Google Yahoo MSN / การทำ inhouse seo
« Last post by thaitourtalk on February 14, 2025, 05:55:09 AM »
เริ่มต้น In-house SEO | 90 วันแรก ต้องทำอะไรบ้าง?
สำหรับ In-house SEO มือใหม่ มาดูกันครับว่าแต่ละช่วง เราควรโฟกัสกับอะไรบ้าง
เฟส 1 - สัปดาห์ที่ 1-2 (ทำความเข้าใจ)
สัปดาห์แรก ๆ คุณยังใหม่อยู่ ให้ใช้เวลานี้เรียนรู้และทำความเข้าใจสิ่งต่าง ๆ ให้มากที่สุด
1. ทำความเข้าใจธุรกิจขององค์กร
ศึกษา Mission, Vision, Value ของบริษัท
สินค้า/บริการหลักคืออะไร? จุดเด่น จุดด้อยคืออะไร?
กลุ่มเป้าหมายคือใคร? พฤติกรรมและความต้องการเป็นยังไง?
ใครคือคู่แข่งหลัก? ทั้งทางตรงและทางอ้อม
ศึกษากลยุทธ์การตลาดโดยรวมของบริษัท
2. ทำความรู้จักกับทีมต่าง ๆ
แนะนำตัวกับเพื่อนร่วมงานในทีม Marketing, Content, Developer, Sales และทีมอื่น ๆ ที่เกี่ยวข้อง
พูดคุยและทำความเข้าใจบทบาทหน้าที่ของแต่ละทีม ดูว่าเราจะทำงานร่วมกันยังไงได้
สร้างความสัมพันธ์ที่ดีกับทุกคน เพราะการทำงาน In-house ต้องอาศัยความร่วมมือจากหลายฝ่าย
3. ศึกษาเว็บไซต์และช่องทาง Online อื่น ๆ ของบริษัท
เว็บไซต์หลักคืออะไร? มีกี่ภาษา? โครงสร้างเว็บไซต์เป็นอย่างไร?
บริษัทมี Social Media ช่องทางไหนบ้าง? แต่ละช่องทางมี Performance เป็นไง?
บริษัทมีการทำการตลาดออนไลน์ช่องทางอื่น ๆ อีกหรือไม่ เช่น Email Marketing, PPC
4. เข้าถึงเครื่องมือต่าง ๆ
ขอสิทธิ์เข้าถึงเครื่องมือต่าง ๆ ที่จำเป็น เช่น Google Analytics, Google Search Console, Social Media Analytics, ระบบหลังบ้านของเว็บไซต์ (CMS)
ทำความคุ้นเคยกับเครื่องมือแต่ละตัว ลองเล่น ลองดูเมนูต่าง ๆ
5. ศึกษาเอกสารหรือ Report SEO ที่มีอยู่ (ถ้ามี)
ดูว่า SEO คนก่อนได้ทำอะไรไว้บ้าง มี Report หรือเอกสารอะไรที่เกี่ยวข้องกับ SEO หรือไม่
ลองวิเคราะห์ดูว่า สิ่งที่เคยทำมา อะไรได้ผล อะไรไม่ได้ผล
เฟส 2 - สัปดาห์ที่ 3-4 (วิเคราะห์และประเมิน)
หลังจากที่พอเข้าใจภาพรวมของธุรกิจและทีมต่าง ๆ ก็ถึงเวลาลงลึกในการวิเคราะห์และประเมินสถานะ SEO ของเว็บไซต์ครับ
6. ทำ Website Audit เบื้องต้น
Technical SEO ตรวจเช็ค robots.txt, sitemap, HTTPS, Page Speed, Mobile-Friendliness, Core Web Vitals, โครงสร้าง URL, เช็ค Broken Links
On-Page SEO ตรวจเช็ค Title Tags, Meta Descriptions, Headings, Content, Image Optimization, Internal Linking
Off-Page SEO ดู Backlink Profile คร่าว ๆ ว่ามี Backlink จากเว็บไซต์ไหนบ้าง จำนวนและคุณภาพเป็นยังไง (อาจใช้ Tools ฟรีหรือ Trial ของ Tools เสียเงิน)
7. ทำ Keyword Research เบื้องต้น
ระดมความคิด หา Keyword ที่เกี่ยวข้องกับธุรกิจ สินค้า/บริการ และกลุ่มเป้าหมาย
ใช้ Tools อย่าง Google Keyword Planner, Ubersuggest หรือ AnswerThePublic เพื่อหาไอเดีย Keyword เพิ่มเติม
จัดกลุ่ม Keyword ตาม Topic และ Search Intent
8. วิเคราะห์คู่แข่ง
เลือกคู่แข่งหลัก 3-5 ราย ทั้งคู่แข่งทางตรงและคู่แข่งที่ Rank ใน Keyword เดียวกัน
วิเคราะห์เว็บไซต์และ Content ของคู่แข่ง ดูว่าเขาทำอะไรได้ดี และมีจุดอ่อนตรงไหน
ดูว่าคู่แข่งโฟกัส Keyword อะไรบ้าง และมี Content Gap ตรงไหนที่เราสามารถเข้าไปแทรกได้
เฟส 3 - เดือนที่ 2 (วางแผนและตั้งเป้าหมาย)
เมื่อวิเคราะห์ข้อมูลต่าง ๆ เรียบร้อย ก็ให้วางแผนกลยุทธ์ SEO กับตั้งเป้าหมายครับ
9. กำหนดเป้าหมาย SEO
ตั้งเป้าหมายที่ SMART (Specific, Measurable, Achievable, Relevant, Time-bound)
เป้าหมายควรสอดคล้องกับเป้าหมายทางธุรกิจ เช่น เพิ่ม Organic Traffic, เพิ่ม Conversion Rate, เพิ่ม Brand Awareness
ตัวอย่างเป้าหมาย "เพิ่ม Organic Traffic 20% ภายใน 6 เดือน" หรือ "ติดอันดับ Top 3 ใน Keyword หลัก 5 คำ ภายใน 3 เดือน"
10. วางแผน Content Strategy
กำหนด Pillar Topic กับ Cluster Content ที่จะสร้าง
วางแผนการสร้าง Content พิจารณาจาก Keyword Research, Content Gap Analysis และ Search Intent
กำหนด Content Calendar ระบุหัวข้อ ผู้รับผิดชอบ และกำหนดเวลาเผยแพร่
11. กำหนดกลยุทธ์ On-Page SEO
วางแผนการ Optimize Title Tags, Meta Descriptions, Headings, Content, และ URL ของแต่ละหน้า
วางแผนการทำ Internal Linking เพื่อเชื่อม Content ต่าง ๆ เข้าด้วยกัน
12. กำหนดกลยุทธ์ Off-Page SEO เบื้องต้น (ถ้าจำเป็น)
พิจารณาว่าจำเป็นต้องทำ Off-Page SEO หรือไม่ เช่น การสร้าง Backlink
ถ้าจำเป็น ให้วางแผนคร่าว ๆ ว่าจะหา Backlink จากที่ไหน และด้วยวิธีอะไร?
เฟส 4 - เดือนที่ 3 (ลงมือทำและติดตามผล)
เดือนที่ 3 ให้เริ่มลงมือทำตามแผนที่วางไว้ และติดตามผลอย่างใกล้ชิด
13. เริ่มสร้างและ Optimize Content
เขียน Content ตาม Content Calendar ที่วางไว้
Optimize Content ตามหลัก On-Page SEO
14. เริ่มทำ Internal Linking
ลิงก์ Content ต่าง ๆ เข้าด้วยกัน โดยใช้ Anchor Text ที่เกี่ยวข้องกับ Keyword
15. ติดตามอันดับ Keyword และ Organic Traffic
ใช้ Google Search Console กับ Google Analytics ติดตามผล
ดูว่าอันดับ Keyword และ Organic Traffic มีการเปลี่ยนแปลงไปในทิศทางไหน
16. วิเคราะห์ผลลัพธ์และปรับปรุง
ดูว่ากลยุทธ์ที่วางไว้ได้ผลหรือไม่ มีอะไรที่ต้องปรับปรุงหรือแก้ไข
นำข้อมูลที่ได้มาพัฒนากลยุทธ์ SEO ให้มีประสิทธิภาพขึ้น
17. รายงานความคืบหน้าให้กับผู้บริหารหรือทีมที่เกี่ยวข้อง
เตรียม Report ที่แสดงให้เห็นความคืบหน้าของงาน SEO และผลลัพธ์ที่เกิดขึ้น
สื่อสารกับผู้บริหารหรือทีมที่เกี่ยวข้องสม่ำเสมอ
9
EveryThing is SEO Google Yahoo MSN / guest post
« Last post by thaitourtalk on February 12, 2025, 06:25:56 AM »
### 50 อันดับเว็บไซต์สำหรับ SEO Parasite
1.เครือข่ายสังคมและบล็อก
1. medium.com (DA 96) ? nofollow (ในบทความ)
2. linkedin.com (DA 98) ? dofollow (ในโปรไฟล์), nofollow (ในโพสต์)
3. quora.com (DA 91) ? nofollow (ในคำตอบ)
4. tumblr.com (DA 97) ? dofollow (ในโพสต์ เว้นแต่จะเพิ่มแท็ก nofollow ด้วยตนเอง)
5. reddit.com (DA 93) ? nofollow (ในโพสต์และความคิดเห็น)
6. wordpress.com (DA 99) ? dofollow (ในบทความบนบล็อกผู้ใช้)
7. blogger.com (DA 97) ? dofollow (ในโพสต์)
8. pinterest.com (DA 92) ? nofollow (ในคำอธิบายพิน)
2. ฟอรั่มและคำถามและคำตอบ
9. stackoverflow.com (DA 93) ? nofollow (ในคำตอบ)
10. github.com (DA 99) ? dofollow (ใน README และโปรไฟล์)
11. gitlab.com (DA 92) ? dofollow (คล้ายกับ GitHub)
12. news.ycombinator.com (HackerNews, DA 90) ? nofollow (ในความคิดเห็น)
13. forum.xda-developers.com (DA 88) ? nofollow (ในโพสต์)
3. การโฮสต์สื่อ
14. youtube.com (DA 100) ? nofollow (ในคำอธิบายวิดีโอ)
15. vimeo.com (DA 95) ? nofollow (ในคำอธิบาย)
16. soundcloud.com (DA 92) ? nofollow (ในคำอธิบายเพลง)
17. slideshare.net (DA 93) ? nofollow (ในสไลด์)
18. issuu.com (DA 90) ? nofollow (ในเอกสาร)
4. แคตตาล็อกและตัวรวบรวม
19. crunchbase.com (DA 90) ? dofollow (ในโปรไฟล์บริษัท)
20. yelp.com (DA 94) ? nofollow (ในรีวิว), dofollow (ในหน้าธุรกิจ)
21. trustpilot.com (DA 90) ? nofollow (ในการรีวิว)
22. producthunt.com (DA 89) ? dofollow (บนหน้าผลิตภัณฑ์)
23. yellowpages.com (DA 91) ? dofollow (ในรายชื่อบริษัท)
5. ทรัพยากรระบบคลาวด์
24. sites.google.com (DA 100) ? dofollow (บนเว็บไซต์ของผู้ใช้)
25. notion.site (DA 90) ? dofollow (บนหน้าสาธารณะ)
26. dropbox.com (DA 95) ? nofollow (ในคำอธิบายไฟล์)
6. แพลตฟอร์มเฉพาะกลุ่ม
27. behance.net (DA 94) ? dofollow (ในพอร์ตโฟลิโอ)
28. dribbble.com (DA 91) ? dofollow (ในโครงการ)
29. academia.edu (DA 92) ? dofollow (ในโปรไฟล์และบทความ)
30. researchgate.net (DA 93) ? dofollow (ในสิ่งพิมพ์)
7. โพสต์ของแขกและสื่อ
31. forbes.com (DA 95) ? dofollow (ในบทความแขกรับเชิญที่ได้รับการอนุมัติ)
32. hubpages.com (DA 88) ? nofollow (ในบทความ)
8. เว็บไซต์อื่นๆ
33. wikipedia.org (DA 99) ? nofollow (ในลิงก์ภายนอก)
34. imdb.com (DA 94) ? nofollow (ในคำอธิบาย)
35. flickr.com (DA 93) ? nofollow (ในคำอธิบายภาพ)
36. amazon.com (DA 94) ? nofollow (ในรีวิวและโปรไฟล์)
37. ebay.com (DA 93) ? nofollow (ในคำอธิบายผลิตภัณฑ์)
38. tripadvisor.com (DA 94) ? nofollow (ในรีวิว)
39. gist.github.com (DA 99) ? dofollow (ในรูปแบบสไนปเป็ต)
40. pastebin.com (DA 88) ? nofollow (ในข้อความ)
9. แพลตฟอร์มท้องถิ่น
41. google.com/maps (Google My Business, DA 100) ? dofollow (ในโปรไฟล์ธุรกิจ)
42. bbb.org (DA 90) ? dofollow (ในโปรไฟล์บริษัท)
10. ล้าสมัยแต่ยังใช้งานได้
43. livejournal.com (DA 88) ? nofollow (ในโพสต์)
44. weebly.com (DA 93) ? dofollow (บนเว็บไซต์ผู้ใช้)
45. wix.com (DA 94) ? dofollow (บนเว็บไซต์ผู้ใช้)
46. ????jimdo.com (DA 85) ? dofollow (บนเว็บไซต์ของผู้ใช้)
11. เพิ่มเติม
47. angel.co (DA 89) ? dofollow (ในโปรไฟล์เริ่มต้น)
48. patreon.com (DA 90) ? nofollow (ในหน้าผู้เขียน)
49. mix.com (DA 85) ? nofollow (ในเนื้อหารวม)
50. scribd.com (DA 92) ? nofollow (ในเอกสาร)
10

0-10 กรัม 5 บาท /  11-20 กรับ 6 บาท / 21-100 กรัม 11 บาท / 101-250 กรัม 17 บาท / 250 -500 กรับ 23 บาท
Pages: [1] 2 3 ... 10