>  Q&A  >  본문

Ghost CMS API에 대한 R 인터페이스

<p>내장된 Admin API를 사용하여 R에서 로컬 Ghost CMS 인스턴스에 연결하려고 합니다. 다양한 언어로 연결하는 방법에 대한 좋은 문서(https://ghost.org/docs/admin-api/#token-authentication)가 있지만 안타깝게도 R에 대한 문서는 없습니다. 다음 코드를 작성했지만 불행하게도 테스트 항목을 생성하려고 할 때 401 오류가 발생했습니다. 어떤 도움이라도 대단히 감사하겠습니다. <br /><br />R 코드:</p><p><strong></strong></p> <pre class="brush:php;toolbar:false;">api_admin_key <- "xxxxxx:yyyyyyyyyyyyyyy" api_admin_key <- unlist(strsplit(x = api_admin_key, 분할 = ":")) names(api_admin_key) <- c("id", "secret") # 헤더와 페이로드 준비 iat <- as.integer(Sys.time()) 헤더 <- list(alg = 'HS256', typ = 'JWT', kid = api_admin_key[["id"]]) # 토큰 생성(디코딩 비밀 포함) 페이로드 <- 호세::jwt_claim(iat = iat, 특급 = iat + 5 * 60, aud = '/관리자/') 토큰 <- 호세::jwt_encode_hmac( 클레임 = 페이로드, 비밀 = charToRaw(api_admin_key[["secret"]]), 크기 = 256, 헤더 = 헤더 ) # 게시물 작성을 위해 인증된 요청을 합니다. URL <- 'http://localhost:2368/ghost/api/admin/posts/' 헤더 <- c('Authorization' = Paste("Ghost", token)) body <- list(게시물 = 목록( "제목" = '안녕하세요 세계', "html" = "<p>내 게시물 콘텐츠. 작업 진행 중...</p>", "상태" = "게시됨" ) ) httr::POST(URL, 몸=몸, 인코딩 = "json", httr::add_headers(.headers = 헤더))</pre> <p><br /></p>
P粉134288794P粉134288794444일 전531

모든 응답(1)나는 대답할 것이다

  • P粉739706089

    P粉7397060892023-08-04 09:11:43

    jwt_encode_hmac()에 전달하는 secret= 매개변수에 문제가 있는 것 같습니다. charToRaw 함수는 16진수를 이해할 수 없으며 ASCII 문자 코드만 사용합니다. 변환을 수행하려면 기존 질문의 hex_to_raw 함수 중 하나를 사용해야 합니다. 여기서는 변환을 수행하는 함수를 사용하고 있습니다.

    으아아아

    또한 헤더에 alg 및 typ를 지정할 필요가 없습니다. 이는 함수에 의해 자동으로 추가되기 때문입니다. 따라서 다음을 사용하여 토큰을 만들 수 있습니다.

    으아아아

    https://jwt.io/의 디버거를 사용하여 각 토큰을 테스트한 결과 동일한 것으로 보입니다. 디버거에서 16진수 값 "12bd18f2cd12"의 Base64 인코딩 값은 "Er0Y8s0S"입니다.

    회신하다
    0
  • 취소회신하다