Google 앱 스크립트를 사용하여 워드프레스 관리 페이지를 가져오려면 어떻게 해야 합니까?
Wordpress 블로그 관리 영역에서 페이지를 가져와야 합니다.다음 스크립트:
function fetchAdminPage() {
var url = "http://www.mydomain.invalid/wp/wp-admin/wp-login.php";
var options = {
"method": "post",
"payload": {
"log": "admin",
"pwd": "password",
"wp-submit": "Login",
"redirect_to":"http://www.mydomain.invalid/wp/wp-admin/edit-comments.php",
"testcookie": 1
}
};
var response = UrlFetchApp.fetch(url, options);
...
}
오류 없이 실행됩니다.어쨌든,response.getContentText()
로그인 페이지가 반환되며 가져오는 페이지http://www.mydomain.invalid/wp/wp-admin/edit-comments.php에 액세스할 수 없습니다.어떻게 하는지 아세요?
Google 앱 스크립트에 문제가 있을 수 있으며 리디렉션 헤더를 반환하는 URL에 포스트잉합니다.
포스트로 리다이렉트를 팔로우 하는 것은 불가능할 것 같습니다.이 문제에 대한 논의는 다음과 같습니다.
https://issuetracker.google.com/issues/36754794
리다이렉트를 따르지 않도록 코드를 수정하면 쿠키를 캡처한 후 페이지에 두 번째 요청을 할 수 있습니까?실제로 GAS를 사용한 적은 없습니다만, 메뉴얼을 읽고, 이하를 추측해 보겠습니다.
function fetchAdminPage() {
var url = "http://www.mydomain.invalid/wp/wp-admin/wp-login.php";
var options = {
"method": "post",
"payload": {
"log": "admin",
"pwd": "password",
"wp-submit": "Login",
"testcookie": 1
},
"followRedirects": false
};
var response = UrlFetchApp.fetch(url, options);
if ( response.getResponseCode() == 200 ) {
// Incorrect user/pass combo
} else if ( response.getResponseCode() == 302 ) {
// Logged-in
var headers = response.getAllHeaders();
if ( typeof headers['Set-Cookie'] !== 'undefined' ) {
// Make sure that we are working with an array of cookies
var cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
for (var i = 0; i < cookies.length; i++) {
// We only need the cookie's value - it might have path, expiry time, etc here
cookies[i] = cookies[i].split( ';' )[0];
};
url = "http://www.mydomain.invalid/wp/wp-admin/edit-comments.php";
options = {
"method": "get",
// Set the cookies so that we appear logged-in
"headers": {
"Cookie": cookies.join(';')
}
};
response = UrlFetchApp.fetch(url, options);
};
};
...
}
디버깅과 에러 처리를 추가할 필요가 있는 것은 분명하지만, 이 기능을 사용하면 문제가 해결됩니다.
여기서는 로그인 양식에 먼저 글을 올립니다.모든 것이 정상적으로 진행된다고 가정하면 응답 코드 302(발견)가 반환됩니다.이 경우 헤더를 처리하고 특히 "Set-Cookie" 헤더를 찾습니다.설정이 되어 있으면 불필요한 것을 제거하고 쿠키 값을 저장합니다.
마지막으로 관리자(이 경우)의 원하는 페이지에 새로운 get 요구를 합니다./wp/wp-admin/edit-comments.php
그러나 이번에는 이전 단계에서 획득한 모든 쿠키를 포함하는 "Cookie" 헤더를 첨부합니다.
모든 것이 예상대로 동작하는 경우는, admin 페이지가 표시됩니다.
시간, 자원 및 요청을 절약하기 위해 쿠키 정보를 저장하는 것이 좋습니다(페이지에 여러 요청을 하는 경우).
다시 말씀드리지만, 실제로 코드를 테스트한 적은 없지만 이론적으로 작동해야 합니다.시험해보고 결과물을 가지고 저에게 돌아오세요.
언급URL : https://stackoverflow.com/questions/19567105/how-to-fetch-a-wordpress-admin-page-using-google-apps-script
'bestsource' 카테고리의 다른 글
React.Component vs React.createClass (0) | 2023.03.15 |
---|---|
실행 방법c#을 사용한SQL 스크립트파일 (0) | 2023.03.15 |
Wordpress에서 사용자 정의 관리 페이지에 양식 제출 (0) | 2023.03.15 |
WordPress의 Users Admin 페이지에 사용자 정의 사용자 메타 추가 (0) | 2023.03.15 |
명시적 주석을 사용하지 않는 각도를 수정하는 방법 및 엄격한 모드에서 호출할 수 없습니다. (0) | 2023.03.15 |