WordPress API 오류: "죄송합니다. 새 게시물을 만들 수 없습니다."
현재 앱 스크립트 기능을 사용하여 WordPress 사이트에 새 게시물을 추가하고 있습니다.
var um_url = 'http://test.mywebsite.com/wp/wp-json/wp/v2/posts';
var um_headers = {
"Accept" : "application/json",
"Authorization": "Basic "+Utilities.base64Encode("user:passowrd"),
"Content-type":"application/json"
};
var um_options = {
"method":"POST",
"headers": um_headers,
"dataType" : 'json',
"data": {
title: "Foo title",
content: "Foo content",
status: "publish"
}
};
var um_response = UrlFetchApp.fetch(um_url, um_options);
var json = um_response.getContentText();
Logger.log(json);
}
하지만 다음과 같은 오류가 발생합니다.
{"code":"rest_cannot_create","message":"Sorry, you are not allowed to create new posts.","data":{"status":401}}
StackOverflow에 관한 다른 유사한 질문을 읽었더니.htacess불행히도, 제 문제는 해결되지 않았습니다.여기 내 것이 있다.htaccess파일
# BEGIN WP BASIC Auth
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
# END WP BASIC Auth
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
RewriteBase /
RewriteRule ^index\.php$ - [E=X-HTTP_AUTHORIZATION:% {HTTP:Authorization},QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
# END WordPress
누구 도와줄 사람?
REST API를 통해 무언가를 추가하려고 하는 것과 거의 같은 문제가 있었습니다.REST WP Nonce(wp_rest라는 이름)를 헤더 또는 요청 변수의 일부로 요청과 함께 전송해야 합니다.
fetch를 사용하면 이렇게 할 수 있습니다.
fetch( route, {
method: method,
headers: {
'X-WP-Nonce': wpApiSettings.nonce
}
} )
또는 쿼리 변수에 '_wpnonce'로 추가합니다.
현재 사용자를 0으로 설정하고 있는 코드는 다음 URL에서 찾을 수 있습니다.wp-includes/rest-api.php회선 834(버전 5.2.1)
의 탓이다status: "publish"를 선택합니다.로 변경하다status: "pending"효과가 있을 거야이것은, 유저가 다음의 역할이 없는 한, 투고를 직접 퍼블리시 할 수 없기 때문에 발생합니다.author또는 그 이상입니다.
코드를 다음과 같이 변경할 수 있습니다(또는 사용자 역할 변경).author및 세트New User Default Role로.Author아래WordPress settings » General신규 사용자도 마찬가지입니다.
var um_url = 'http://test.mywebsite.com/wp/wp-json/wp/v2/posts';
var um_headers = {
"Accept" : "application/json",
"Authorization": "Basic "+Utilities.base64Encode("user:passowrd"),
"Content-type":"application/json"
};
var um_options = {
"method":"POST",
"headers": um_headers,
"dataType" : 'json',
"data": {
title: "Foo title",
content: "Foo content",
status: "pending"
}
};
var um_response = UrlFetchApp.fetch(um_url, um_options);
var json = um_response.getContentText();
Logger.log(json);
}
언급URL : https://stackoverflow.com/questions/38213499/wordpress-api-error-sorry-you-are-not-allowed-to-create-new-posts
'source' 카테고리의 다른 글
| JSON에서의 역직렬화를 위한 주조 인터페이스.그물 (0) | 2023.03.13 |
|---|---|
| AJAX 요청으로 쿠키 값을 설정하려면 어떻게 해야 합니까? (0) | 2023.03.13 |
| AngularJS: 서비스 vs 프로바이더 vs 팩토리 (0) | 2023.03.13 |
| angular js: outside를 클릭하거나 excape를 누를 때 부트스트랩 모달의 소실을 방지하시겠습니까? (0) | 2023.03.13 |
| 배열의 첫 번째 값이 아닌 .data() 함수가 []를 반환하는 이유는 무엇입니까? (0) | 2023.03.13 |