{"id":17,"date":"2026-04-26T10:54:42","date_gmt":"2026-04-26T10:54:42","guid":{"rendered":"https:\/\/tools.vn4u.vn\/?page_id=17"},"modified":"2026-04-26T10:54:45","modified_gmt":"2026-04-26T10:54:45","slug":"17-2","status":"publish","type":"page","link":"https:\/\/tools.vn4u.vn\/index.php\/17-2\/","title":{"rendered":""},"content":{"rendered":"<p>&nbsp;<\/p>\n<style>\n    :root {<br \/>      --primary: #2563eb;<br \/>      --primary-dark: #1d4ed8;<br \/>      --bg: #f5f7fb;<br \/>      --card: #ffffff;<br \/>      --text: #1f2937;<br \/>      --muted: #6b7280;<br \/>      --border: #e5e7eb;<br \/>      --success: #16a34a;<br \/>      --warning: #f59e0b;<br \/>      --danger: #dc2626;<br \/>      --code-bg: #0f172a;<br \/>      --code-text: #e5e7eb;<br \/>    }<\/p>\n<p>    * {<br \/>      box-sizing: border-box;<br \/>    }<\/p>\n<p>    body {<br \/>      margin: 0;<br \/>      font-family: Arial, Helvetica, sans-serif;<br \/>      background: var(--bg);<br \/>      color: var(--text);<br \/>      line-height: 1.7;<br \/>    }<\/p>\n<p>    header {<br \/>      background: linear-gradient(135deg, #2563eb, #1e40af);<br \/>      color: white;<br \/>      padding: 50px 24px;<br \/>      text-align: center;<br \/>    }<\/p>\n<p>    header h1 {<br \/>      margin: 0 0 12px;<br \/>      font-size: 34px;<br \/>    }<\/p>\n<p>    header p {<br \/>      margin: 0 auto;<br \/>      max-width: 760px;<br \/>      font-size: 17px;<br \/>      opacity: 0.95;<br \/>    }<\/p>\n<p>    .container {<br \/>      max-width: 1100px;<br \/>      margin: 0 auto;<br \/>      padding: 28px 20px 60px;<br \/>      display: grid;<br \/>      grid-template-columns: 280px 1fr;<br \/>      gap: 24px;<br \/>    }<\/p>\n<p>    nav {<br \/>      position: sticky;<br \/>      top: 20px;<br \/>      align-self: start;<br \/>      background: var(--card);<br \/>      border: 1px solid var(--border);<br \/>      border-radius: 14px;<br \/>      padding: 20px;<br \/>      box-shadow: 0 10px 25px rgba(15, 23, 42, 0.06);<br \/>    }<\/p>\n<p>    nav h2 {<br \/>      margin-top: 0;<br \/>      font-size: 18px;<br \/>      color: var(--primary-dark);<br \/>    }<\/p>\n<p>    nav a {<br \/>      display: block;<br \/>      padding: 8px 0;<br \/>      color: var(--text);<br \/>      text-decoration: none;<br \/>      border-bottom: 1px dashed #e5e7eb;<br \/>      font-size: 14px;<br \/>    }<\/p>\n<p>    nav a:hover {<br \/>      color: var(--primary);<br \/>    }<\/p>\n<p>    main {<br \/>      min-width: 0;<br \/>    }<\/p>\n<p>    section {<br \/>      background: var(--card);<br \/>      border: 1px solid var(--border);<br \/>      border-radius: 16px;<br \/>      padding: 26px;<br \/>      margin-bottom: 22px;<br \/>      box-shadow: 0 10px 25px rgba(15, 23, 42, 0.05);<br \/>    }<\/p>\n<p>    h2 {<br \/>      margin-top: 0;<br \/>      color: #111827;<br \/>      font-size: 25px;<br \/>    }<\/p>\n<p>    h3 {<br \/>      margin-top: 26px;<br \/>      color: #111827;<br \/>      font-size: 19px;<br \/>    }<\/p>\n<p>    .badge {<br \/>      display: inline-block;<br \/>      padding: 4px 10px;<br \/>      border-radius: 999px;<br \/>      font-size: 13px;<br \/>      font-weight: bold;<br \/>      margin-bottom: 12px;<br \/>    }<\/p>\n<p>    .badge-blue {<br \/>      background: #dbeafe;<br \/>      color: #1d4ed8;<br \/>    }<\/p>\n<p>    .badge-green {<br \/>      background: #dcfce7;<br \/>      color: #166534;<br \/>    }<\/p>\n<p>    .badge-yellow {<br \/>      background: #fef3c7;<br \/>      color: #92400e;<br \/>    }<\/p>\n<p>    .note {<br \/>      padding: 14px 16px;<br \/>      border-radius: 12px;<br \/>      margin: 18px 0;<br \/>      border-left: 5px solid var(--primary);<br \/>      background: #eff6ff;<br \/>    }<\/p>\n<p>    .warning {<br \/>      padding: 14px 16px;<br \/>      border-radius: 12px;<br \/>      margin: 18px 0;<br \/>      border-left: 5px solid var(--warning);<br \/>      background: #fffbeb;<br \/>    }<\/p>\n<p>    .success {<br \/>      padding: 14px 16px;<br \/>      border-radius: 12px;<br \/>      margin: 18px 0;<br \/>      border-left: 5px solid var(--success);<br \/>      background: #f0fdf4;<br \/>    }<\/p>\n<p>    .danger {<br \/>      padding: 14px 16px;<br \/>      border-radius: 12px;<br \/>      margin: 18px 0;<br \/>      border-left: 5px solid var(--danger);<br \/>      background: #fef2f2;<br \/>    }<\/p>\n<p>    code {<br \/>      background: #eef2ff;<br \/>      color: #1e3a8a;<br \/>      padding: 2px 6px;<br \/>      border-radius: 6px;<br \/>      font-size: 14px;<br \/>    }<\/p>\n<p>    pre {<br \/>      background: var(--code-bg);<br \/>      color: var(--code-text);<br \/>      padding: 18px;<br \/>      border-radius: 14px;<br \/>      overflow-x: auto;<br \/>      font-size: 14px;<br \/>      line-height: 1.6;<br \/>    }<\/p>\n<p>    pre code {<br \/>      background: transparent;<br \/>      color: inherit;<br \/>      padding: 0;<br \/>    }<\/p>\n<p>    table {<br \/>      width: 100%;<br \/>      border-collapse: collapse;<br \/>      margin: 18px 0;<br \/>      background: white;<br \/>      border: 1px solid var(--border);<br \/>    }<\/p>\n<p>    th, td {<br \/>      border: 1px solid var(--border);<br \/>      padding: 12px;<br \/>      text-align: left;<br \/>      vertical-align: top;<br \/>    }<\/p>\n<p>    th {<br \/>      background: #f3f4f6;<br \/>      font-weight: bold;<br \/>    }<\/p>\n<p>    .step {<br \/>      display: flex;<br \/>      gap: 14px;<br \/>      margin: 18px 0;<br \/>    }<\/p>\n<p>    .step-number {<br \/>      flex: 0 0 34px;<br \/>      width: 34px;<br \/>      height: 34px;<br \/>      border-radius: 50%;<br \/>      background: var(--primary);<br \/>      color: white;<br \/>      display: flex;<br \/>      align-items: center;<br \/>      justify-content: center;<br \/>      font-weight: bold;<br \/>      margin-top: 4px;<br \/>    }<\/p>\n<p>    .step-content {<br \/>      flex: 1;<br \/>    }<\/p>\n<p>    .checklist label {<br \/>      display: block;<br \/>      padding: 10px 12px;<br \/>      margin: 8px 0;<br \/>      background: #f9fafb;<br \/>      border: 1px solid var(--border);<br \/>      border-radius: 10px;<br \/>    }<\/p>\n<p>    .footer {<br \/>      text-align: center;<br \/>      color: var(--muted);<br \/>      padding: 30px 20px;<br \/>      font-size: 14px;<br \/>    }<\/p>\n<p>    a {<br \/>      color: var(--primary);<br \/>    }<\/p>\n<p>    @media (max-width: 900px) {<br \/>      .container {<br \/>        grid-template-columns: 1fr;<br \/>      }<\/p>\n<p>      nav {<br \/>        position: static;<br \/>      }<\/p>\n<p>      header h1 {<br \/>        font-size: 27px;<br \/>      }<br \/>    }<br \/>  <\/style>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<header>\n<h1>H\u01b0\u1edbng d\u1eabn t\u1ea1o App WordPress.com v\u00e0 k\u1ebft n\u1ed1i v\u1edbi n8n<\/h1>\n<p>T\u00e0i li\u1ec7u d\u00e0nh cho ng\u01b0\u1eddi m\u1edbi, gi\u00fap b\u1ea1n t\u1ea1o WordPress.com Developer App,<br \/>\nl\u1ea5y OAuth2 Token trong n8n v\u00e0 \u0111\u0103ng b\u00e0i t\u1ef1 \u0111\u1ed9ng l\u00ean WordPress.com.<\/p>\n<\/header>\n<div class=\"container\">\n<nav>\n<h2>M\u1ee5c l\u1ee5c<\/h2>\n<p><a href=\"#overview\">1. T\u1ed5ng quan<\/a><br \/>\n<a href=\"#prepare\">2. Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi l\u00e0m<\/a><br \/>\n<a href=\"#create-app\">3. T\u1ea1o App tr\u00ean WordPress.com<\/a><br \/>\n<a href=\"#redirect-url\">4. L\u1ea5y Redirect URL t\u1eeb n8n<\/a><br \/>\n<a href=\"#oauth-credential\">5. T\u1ea1o OAuth2 Credential trong n8n<\/a><br \/>\n<a href=\"#connect-account\">6. K\u1ebft n\u1ed1i t\u00e0i kho\u1ea3n WordPress.com<\/a><br \/>\n<a href=\"#create-workflow\">7. T\u1ea1o workflow \u0111\u0103ng b\u00e0i<\/a><br \/>\n<a href=\"#http-node\">8. C\u1ea5u h\u00ecnh HTTP Request node<\/a><br \/>\n<a href=\"#test\">9. Test \u0111\u0103ng b\u00e0i nh\u00e1p<\/a><br \/>\n<a href=\"#publish\">10. Chuy\u1ec3n sang \u0111\u0103ng c\u00f4ng khai<\/a><br \/>\n<a href=\"#errors\">11. L\u1ed7i th\u01b0\u1eddng g\u1eb7p<\/a><br \/>\n<a href=\"#checklist\">12. Checklist ho\u00e0n th\u00e0nh<\/a><\/p>\n<\/nav>\n<p>&nbsp;<\/p>\n<section id=\"overview\"><span class=\"badge badge-blue\">T\u1ed5ng quan<\/span><\/p>\n<h2>1. T\u1ed5ng quan c\u00e1ch ho\u1ea1t \u0111\u1ed9ng<\/h2>\n<p>V\u1edbi <strong>WordPress.com<\/strong>, b\u1ea1n kh\u00f4ng d\u00f9ng Application Password nh\u01b0 WordPress.org self-host.<br \/>\nC\u00e1ch ph\u00f9 h\u1ee3p h\u01a1n l\u00e0 d\u00f9ng <strong>OAuth2<\/strong>.<\/p>\n<p>Lu\u1ed3ng ho\u1ea1t \u0111\u1ed9ng s\u1ebd nh\u01b0 sau:<\/p>\n<pre><code>WordPress.com Developer App\r\n\u2192 c\u1ea5p Client ID v\u00e0 Client Secret\r\n\u2192 n8n d\u00f9ng OAuth2 \u0111\u1ec3 xin quy\u1ec1n truy c\u1eadp\r\n\u2192 n8n l\u1ea5y Access Token\r\n\u2192 HTTP Request node \u0111\u0103ng b\u00e0i l\u00ean WordPress.com API<\/code><\/pre>\n<div class=\"note\"><strong>Ghi nh\u1edb:<\/strong> V\u1edbi WordPress.com, b\u1ea1n n\u00ean d\u00f9ng<br \/>\n<code>OAuth2 API<\/code> credential trong n8n, sau \u0111\u00f3 d\u00f9ng<br \/>\n<code>HTTP Request<\/code> node \u0111\u1ec3 \u0111\u0103ng b\u00e0i.<\/div>\n<\/section>\n<section id=\"prepare\"><span class=\"badge badge-green\">Chu\u1ea9n b\u1ecb<\/span><\/p>\n<h2>2. Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi l\u00e0m<\/h2>\n<p>B\u1ea1n c\u1ea7n c\u00f3:<\/p>\n<table>\n<thead>\n<tr>\n<th>Th\u1ee9 c\u1ea7n c\u00f3<\/th>\n<th>V\u00ed d\u1ee5<\/th>\n<th>Ghi ch\u00fa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Blog WordPress.com<\/td>\n<td><code>https:\/\/congtythietkewebsitevn4u.wordpress.com\/<\/code><\/td>\n<td>\u0110\u00e2y l\u00e0 site b\u1ea1n mu\u1ed1n \u0111\u0103ng b\u00e0i l\u00ean.<\/td>\n<\/tr>\n<tr>\n<td>n8n \u0111ang ch\u1ea1y public HTTPS<\/td>\n<td><code>https:\/\/n8n.vn4u.vn<\/code><\/td>\n<td>OAuth2 c\u1ea7n URL callback truy c\u1eadp \u0111\u01b0\u1ee3c t\u1eeb b\u00ean ngo\u00e0i.<\/td>\n<\/tr>\n<tr>\n<td>T\u00e0i kho\u1ea3n WordPress.com<\/td>\n<td>Email \u0111\u0103ng nh\u1eadp WordPress.com<\/td>\n<td>T\u00e0i kho\u1ea3n n\u00e0y ph\u1ea3i c\u00f3 quy\u1ec1n \u0111\u0103ng b\u00e0i tr\u00ean blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"warning\"><strong>L\u01b0u \u00fd:<\/strong> N\u1ebfu n8n ch\u1ec9 ch\u1ea1y \u1edf localhost ho\u1eb7c IP n\u1ed9i b\u1ed9,<br \/>\nOAuth2 callback c\u00f3 th\u1ec3 kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng. N\u00ean d\u00f9ng domain HTTPS cho n8n.<\/div>\n<\/section>\n<section id=\"create-app\"><span class=\"badge badge-blue\">WordPress.com<\/span><\/p>\n<h2>3. T\u1ea1o App tr\u00ean WordPress.com Developer<\/h2>\n<div class=\"step\">\n<div class=\"step-number\">1<\/div>\n<div class=\"step-content\">\n<p>Truy c\u1eadp trang t\u1ea1o app:<\/p>\n<pre><code>https:\/\/developer.wordpress.com\/apps\/<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">2<\/div>\n<div class=\"step-content\">\n<p>B\u1ea5m t\u1ea1o app m\u1edbi ho\u1eb7c ch\u1ec9nh s\u1eeda app hi\u1ec7n c\u00f3.<\/p>\n<\/div>\n<\/div>\n<h3>Th\u00f4ng tin n\u00ean \u0111i\u1ec1n<\/h3>\n<table>\n<thead>\n<tr>\n<th>Tr\u01b0\u1eddng<\/th>\n<th>N\u1ed9i dung n\u00ean \u0111i\u1ec1n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Name<\/strong><\/td>\n<td><code>n8n congtythietkewebsitevn4u<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Description<\/strong><\/td>\n<td><code>App d\u00f9ng \u0111\u1ec3 k\u1ebft n\u1ed1i n8n v\u00e0 \u0111\u0103ng b\u00e0i t\u1ef1 \u0111\u1ed9ng l\u00ean WordPress.com<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Website URL<\/strong><\/td>\n<td><code>https:\/\/congtythietkewebsitevn4u.wordpress.com\/<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Redirect URLs<\/strong><\/td>\n<td>D\u00e1n OAuth Redirect URL l\u1ea5y t\u1eeb n8n. Xem ph\u1ea7n ti\u1ebfp theo.<\/td>\n<\/tr>\n<tr>\n<td><strong>Javascript Origins<\/strong><\/td>\n<td>\u0110\u1ec3 tr\u1ed1ng.<\/td>\n<\/tr>\n<tr>\n<td><strong>What is 6 + 6?<\/strong><\/td>\n<td><code>12<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Type<\/strong><\/td>\n<td>Ch\u1ecdn <code>Web<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"danger\"><strong>Quan tr\u1ecdng:<\/strong> Tr\u01b0\u1eddng <code>Redirect URLs<\/code> ph\u1ea3i tr\u00f9ng ch\u00ednh x\u00e1c<br \/>\nv\u1edbi OAuth Redirect URL trong n8n. Sai m\u1ed9t k\u00fd t\u1ef1 c\u0169ng c\u00f3 th\u1ec3 l\u1ed7i.<\/div>\n<\/section>\n<section id=\"redirect-url\"><span class=\"badge badge-yellow\">Redirect URL<\/span><\/p>\n<h2>4. L\u1ea5y Redirect URL t\u1eeb n8n<\/h2>\n<p>Trong n8n, v\u00e0o:<\/p>\n<pre><code>Credentials\r\n\u2192 New\r\n\u2192 OAuth2 API<\/code><\/pre>\n<p>Trong m\u00e0n h\u00ecnh t\u1ea1o credential, n8n s\u1ebd hi\u1ec3n th\u1ecb m\u1ed9t d\u00f2ng t\u00ean l\u00e0:<\/p>\n<pre><code>OAuth Redirect URL<\/code><\/pre>\n<p>N\u00f3 th\u01b0\u1eddng c\u00f3 d\u1ea1ng:<\/p>\n<pre><code>https:\/\/domain-n8n-cua-ban.com\/rest\/oauth2-credential\/callback<\/code><\/pre>\n<p>V\u00ed d\u1ee5 n\u1ebfu n8n c\u1ee7a b\u1ea1n ch\u1ea1y t\u1ea1i:<\/p>\n<pre><code>https:\/\/n8n.vn4u.vn<\/code><\/pre>\n<p>th\u00ec Redirect URL th\u01b0\u1eddng l\u00e0:<\/p>\n<pre><code>https:\/\/n8n.vn4u.vn\/rest\/oauth2-credential\/callback<\/code><\/pre>\n<div class=\"success\">Copy URL n\u00e0y v\u00e0 d\u00e1n v\u00e0o \u00f4 <strong>Redirect URLs<\/strong><br \/>\ntrong app WordPress.com Developer.<\/div>\n<\/section>\n<section id=\"oauth-credential\"><span class=\"badge badge-blue\">n8n OAuth2<\/span><\/p>\n<h2>5. T\u1ea1o OAuth2 Credential trong n8n<\/h2>\n<p>Trong n8n ch\u1ecdn lo\u1ea1i credential:<\/p>\n<pre><code>OAuth2 API<\/code><\/pre>\n<p>Kh\u00f4ng ch\u1ecdn WordPress node credential, v\u00ec WordPress.com kh\u00f4ng d\u00f9ng Application Password theo ki\u1ec3u WordPress.org.<\/p>\n<h3>C\u1ea5u h\u00ecnh OAuth2 API<\/h3>\n<table>\n<thead>\n<tr>\n<th>Tr\u01b0\u1eddng trong n8n<\/th>\n<th>Gi\u00e1 tr\u1ecb c\u1ea7n \u0111i\u1ec1n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Grant Type<\/strong><\/td>\n<td><code>Authorization Code<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Authorization URL<\/strong><\/td>\n<td><code>https:\/\/public-api.wordpress.com\/oauth2\/authorize<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Access Token URL<\/strong><\/td>\n<td><code>https:\/\/public-api.wordpress.com\/oauth2\/token<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Client ID<\/strong><\/td>\n<td>L\u1ea5y trong app WordPress.com Developer.<\/td>\n<\/tr>\n<tr>\n<td><strong>Client Secret<\/strong><\/td>\n<td>L\u1ea5y trong app WordPress.com Developer.<\/td>\n<\/tr>\n<tr>\n<td><strong>Scope<\/strong><\/td>\n<td><code>global<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Auth URI Query Parameters<\/strong><\/td>\n<td>\u0110\u1ec3 tr\u1ed1ng.<\/td>\n<\/tr>\n<tr>\n<td><strong>Authentication<\/strong><\/td>\n<td><code>Body<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Ignore SSL Issues<\/strong><\/td>\n<td>T\u1eaft.<\/td>\n<\/tr>\n<tr>\n<td><strong>Allowed HTTP Request Domains<\/strong><\/td>\n<td>C\u00f3 th\u1ec3 \u0111\u1ec3 <code>All<\/code>, ho\u1eb7c \u0111i\u1ec1n <code>public-api.wordpress.com<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"warning\">N\u1ebfu b\u1ea1n \u0111ang th\u1ea5y <code>Authentication = Header<\/code>, h\u00e3y \u0111\u1ed5i sang<br \/>\n<code>Body<\/code>.<\/div>\n<\/section>\n<section id=\"connect-account\"><span class=\"badge badge-green\">K\u1ebft n\u1ed1i<\/span><\/p>\n<h2>6. K\u1ebft n\u1ed1i t\u00e0i kho\u1ea3n WordPress.com<\/h2>\n<p>Sau khi \u0111i\u1ec1n \u0111\u1ee7 th\u00f4ng tin trong OAuth2 credential:<\/p>\n<div class=\"step\">\n<div class=\"step-number\">1<\/div>\n<div class=\"step-content\">\n<p>B\u1ea5m <strong>Save<\/strong>.<\/p>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">2<\/div>\n<div class=\"step-content\">\n<p>B\u1ea5m <strong>Connect my account<\/strong>.<\/p>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">3<\/div>\n<div class=\"step-content\">\n<p>Tr\u00ecnh duy\u1ec7t s\u1ebd m\u1edf trang WordPress.com \u0111\u1ec3 b\u1ea1n \u0111\u0103ng nh\u1eadp v\u00e0 c\u1ea5p quy\u1ec1n.<\/p>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">4<\/div>\n<div class=\"step-content\">\n<p>Sau khi c\u1ea5p quy\u1ec1n, WordPress.com s\u1ebd chuy\u1ec3n v\u1ec1 n8n.<\/p>\n<\/div>\n<\/div>\n<div class=\"success\">N\u1ebfu k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng, credential trong n8n s\u1ebd b\u00e1o tr\u1ea1ng th\u00e1i \u0111\u00e3 connected.<\/div>\n<\/section>\n<section id=\"create-workflow\"><span class=\"badge badge-blue\">Workflow<\/span><\/p>\n<h2>7. T\u1ea1o workflow \u0111\u0103ng b\u00e0i trong n8n<\/h2>\n<p>T\u1ea1o workflow \u0111\u01a1n gi\u1ea3n tr\u01b0\u1edbc \u0111\u1ec3 test:<\/p>\n<pre><code>Manual Trigger\r\n\u2192 Set\r\n\u2192 HTTP Request<\/code><\/pre>\n<h3>Node 1: Manual Trigger<\/h3>\n<p>D\u00f9ng \u0111\u1ec3 b\u1ea5m ch\u1ea1y th\u1eed th\u1ee7 c\u00f4ng.<\/p>\n<h3>Node 2: Set<\/h3>\n<p>T\u1ea1o d\u1eef li\u1ec7u b\u00e0i vi\u1ebft m\u1eabu:<\/p>\n<pre><code>{\r\n  \"title\": \"B\u00e0i test \u0111\u0103ng t\u1eeb n8n l\u00ean WordPress.com\",\r\n  \"content\": \"&lt;h2&gt;Xin ch\u00e0o&lt;\/h2&gt;&lt;p&gt;\u0110\u00e2y l\u00e0 b\u00e0i test \u0111\u01b0\u1ee3c \u0111\u0103ng t\u1ef1 \u0111\u1ed9ng t\u1eeb n8n.&lt;\/p&gt;\",\r\n  \"status\": \"draft\"\r\n}<\/code><\/pre>\n<div class=\"note\">Khi m\u1edbi test, lu\u00f4n d\u00f9ng <code>draft<\/code> \u0111\u1ec3 b\u00e0i ch\u1ec9 l\u01b0u nh\u00e1p,<br \/>\nch\u01b0a \u0111\u0103ng c\u00f4ng khai.<\/div>\n<\/section>\n<section id=\"http-node\"><span class=\"badge badge-blue\">HTTP Request<\/span><\/p>\n<h2>8. C\u1ea5u h\u00ecnh HTTP Request node<\/h2>\n<p>Th\u00eam node <strong>HTTP Request<\/strong> sau node Set.<\/p>\n<table>\n<thead>\n<tr>\n<th>Tr\u01b0\u1eddng<\/th>\n<th>Gi\u00e1 tr\u1ecb<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Method<\/strong><\/td>\n<td><code>POST<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>URL<\/strong><\/td>\n<td><code>https:\/\/public-api.wordpress.com\/rest\/v1.1\/sites\/congtythietkewebsitevn4u.wordpress.com\/posts\/new<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Authentication<\/strong><\/td>\n<td>Ch\u1ecdn OAuth2 credential WordPress.com v\u1eeba t\u1ea1o.<\/td>\n<\/tr>\n<tr>\n<td><strong>Send Body<\/strong><\/td>\n<td>B\u1eadt.<\/td>\n<\/tr>\n<tr>\n<td><strong>Body Content Type<\/strong><\/td>\n<td><code>Form URL Encoded<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Body Parameters<\/h3>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>title<\/code><\/td>\n<td><code>{{ $json.title }}<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>content<\/code><\/td>\n<td><code>{{ $json.content }}<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>status<\/code><\/td>\n<td><code>{{ $json.status }}<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"note\">Site ID trong URL c\u00f3 th\u1ec3 d\u00f9ng domain WordPress.com:<br \/>\n<code>congtythietkewebsitevn4u.wordpress.com<\/code><\/div>\n<\/section>\n<section id=\"test\"><span class=\"badge badge-green\">Test<\/span><\/p>\n<h2>9. Test \u0111\u0103ng b\u00e0i nh\u00e1p<\/h2>\n<p>Sau khi c\u1ea5u h\u00ecnh xong:<\/p>\n<div class=\"step\">\n<div class=\"step-number\">1<\/div>\n<div class=\"step-content\">\n<p>B\u1ea5m <strong>Execute Workflow<\/strong> trong n8n.<\/p>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">2<\/div>\n<div class=\"step-content\">\n<p>V\u00e0o WordPress.com Dashboard c\u1ee7a site.<\/p>\n<\/div>\n<\/div>\n<div class=\"step\">\n<div class=\"step-number\">3<\/div>\n<div class=\"step-content\">\n<p>Ki\u1ec3m tra m\u1ee5c:<\/p>\n<pre><code>Posts \u2192 Drafts<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"success\">N\u1ebfu th\u1ea5y b\u00e0i test trong Drafts l\u00e0 b\u1ea1n \u0111\u00e3 k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng.<\/div>\n<\/section>\n<section id=\"publish\"><span class=\"badge badge-yellow\">Publish<\/span><\/p>\n<h2>10. Chuy\u1ec3n sang \u0111\u0103ng c\u00f4ng khai<\/h2>\n<p>Sau khi test \u1ed5n, \u0111\u1ed5i status t\u1eeb:<\/p>\n<pre><code>draft<\/code><\/pre>\n<p>th\u00e0nh:<\/p>\n<pre><code>publish<\/code><\/pre>\n<p>C\u00e1c tr\u1ea1ng th\u00e1i th\u01b0\u1eddng d\u00f9ng:<\/p>\n<table>\n<thead>\n<tr>\n<th>Status<\/th>\n<th>\u00dd ngh\u0129a<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>draft<\/code><\/td>\n<td>L\u01b0u nh\u00e1p, ch\u01b0a c\u00f4ng khai.<\/td>\n<\/tr>\n<tr>\n<td><code>publish<\/code><\/td>\n<td>\u0110\u0103ng c\u00f4ng khai.<\/td>\n<\/tr>\n<tr>\n<td><code>private<\/code><\/td>\n<td>B\u00e0i ri\u00eang t\u01b0.<\/td>\n<\/tr>\n<tr>\n<td><code>pending<\/code><\/td>\n<td>Ch\u1edd duy\u1ec7t.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"warning\">Kh\u00f4ng n\u00ean \u0111\u1ec3 <code>publish<\/code> ngay t\u1eeb \u0111\u1ea7u. H\u00e3y test b\u1eb1ng<br \/>\n<code>draft<\/code> tr\u01b0\u1edbc \u0111\u1ec3 tr\u00e1nh \u0111\u0103ng l\u1ed7i h\u00e0ng lo\u1ea1t.<\/div>\n<\/section>\n<section id=\"errors\"><span class=\"badge badge-yellow\">L\u1ed7i th\u01b0\u1eddng g\u1eb7p<\/span><\/p>\n<h2>11. L\u1ed7i th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch x\u1eed l\u00fd<\/h2>\n<table>\n<thead>\n<tr>\n<th>L\u1ed7i<\/th>\n<th>Nguy\u00ean nh\u00e2n th\u01b0\u1eddng g\u1eb7p<\/th>\n<th>C\u00e1ch x\u1eed l\u00fd<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Redirect URI mismatch<\/strong><\/td>\n<td>Redirect URL trong WordPress.com app kh\u00f4ng tr\u00f9ng v\u1edbi n8n.<\/td>\n<td>Copy \u0111\u00fang OAuth Redirect URL trong n8n v\u00e0 d\u00e1n l\u1ea1i v\u00e0o WordPress.com Developer App.<\/td>\n<\/tr>\n<tr>\n<td><strong>Invalid client<\/strong><\/td>\n<td>Sai Client ID ho\u1eb7c Client Secret.<\/td>\n<td>Ki\u1ec3m tra l\u1ea1i Client ID v\u00e0 Client Secret trong app WordPress.com.<\/td>\n<\/tr>\n<tr>\n<td><strong>401 Unauthorized<\/strong><\/td>\n<td>Token ch\u01b0a \u0111\u00fang, credential ch\u01b0a connect, ho\u1eb7c h\u1ebft quy\u1ec1n.<\/td>\n<td>Reconnect OAuth2 credential trong n8n.<\/td>\n<\/tr>\n<tr>\n<td><strong>403 Forbidden<\/strong><\/td>\n<td>T\u00e0i kho\u1ea3n WordPress.com kh\u00f4ng c\u00f3 quy\u1ec1n \u0111\u0103ng b\u00e0i l\u00ean site.<\/td>\n<td>Ki\u1ec3m tra t\u00e0i kho\u1ea3n \u0111ang connect c\u00f3 quy\u1ec1n Author\/Admin tr\u00ean blog.<\/td>\n<\/tr>\n<tr>\n<td><strong>404 Not Found<\/strong><\/td>\n<td>Sai domain site trong URL API.<\/td>\n<td>Ki\u1ec3m tra l\u1ea1i URL: <code>sites\/congtythietkewebsitevn4u.wordpress.com\/posts\/new<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>B\u00e0i kh\u00f4ng hi\u1ec7n<\/strong><\/td>\n<td>B\u00e0i \u0111ang \u1edf tr\u1ea1ng th\u00e1i nh\u00e1p.<\/td>\n<td>V\u00e0o <code>Posts \u2192 Drafts<\/code> \u0111\u1ec3 ki\u1ec3m tra, ho\u1eb7c \u0111\u1ed5i status th\u00e0nh <code>publish<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/section>\n<section id=\"checklist\"><span class=\"badge badge-green\">Checklist<\/span><\/p>\n<h2>12. Checklist ho\u00e0n th\u00e0nh<\/h2>\n<div class=\"checklist\"><label><input type=\"checkbox\" \/> \u0110\u00e3 c\u00f3 blog WordPress.com.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 c\u00f3 n8n ch\u1ea1y b\u1eb1ng domain HTTPS.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 t\u1ea1o app t\u1ea1i WordPress.com Developer.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 \u0111i\u1ec1n Website URL l\u00e0 domain WordPress.com.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 copy OAuth Redirect URL t\u1eeb n8n v\u00e0o Redirect URLs c\u1ee7a app WordPress.com.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 l\u1ea5y Client ID v\u00e0 Client Secret.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 t\u1ea1o OAuth2 API credential trong n8n.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 Connect my account th\u00e0nh c\u00f4ng.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 t\u1ea1o workflow Manual Trigger \u2192 Set \u2192 HTTP Request.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 \u0111\u0103ng th\u1eed b\u00e0i \u1edf tr\u1ea1ng th\u00e1i draft.<\/label><br \/>\n<label><input type=\"checkbox\" \/> \u0110\u00e3 ki\u1ec3m tra b\u00e0i trong WordPress.com Drafts.<\/label><\/div>\n<div class=\"success\">Sau khi ho\u00e0n th\u00e0nh checklist n\u00e0y, b\u1ea1n \u0111\u00e3 c\u00f3 th\u1ec3 d\u00f9ng n8n \u0111\u1ec3 \u0111\u0103ng b\u00e0i t\u1ef1 \u0111\u1ed9ng l\u00ean WordPress.com.<\/div>\n<\/section>\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"footer\">T\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn k\u1ebft n\u1ed1i WordPress.com v\u1edbi n8n b\u1eb1ng OAuth2.<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &nbsp; &nbsp; H\u01b0\u1edbng d\u1eabn t\u1ea1o App WordPress.com v\u00e0 k\u1ebft n\u1ed1i v\u1edbi n8n T\u00e0i li\u1ec7u d\u00e0nh cho ng\u01b0\u1eddi m\u1edbi, gi\u00fap b\u1ea1n t\u1ea1o WordPress.com Developer App, l\u1ea5y OAuth2 Token trong n8n v\u00e0 \u0111\u0103ng b\u00e0i t\u1ef1 \u0111\u1ed9ng l\u00ean WordPress.com. M\u1ee5c l\u1ee5c 1. T\u1ed5ng quan 2. Chu\u1ea9n b\u1ecb tr\u01b0\u1edbc khi l\u00e0m 3. T\u1ea1o App tr\u00ean WordPress.com 4. L\u1ea5y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":2,"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/pages\/17\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/tools.vn4u.vn\/index.php\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}