1

serveracceskey를 사용하여 얻은 access_token에 문제가 있습니다. 여기 NodeJS 내 코드입니다 :Firebase Dynamic Link Analytics Rest API (NodeJS)에 대한 올바른 액세스 토큰을 얻는 방법

const admin = require('firebase-admin'); 
var request = require("request"); 
const serviceAccount = require('./serverAccountKey.json'); 
const credential = admin.credential.cert(serviceAccount); 

    credential.getAccessToken().then((accessTokenInfo) => { 
    const accessToken = accessTokenInfo.access_token; 
    const expirationTime = accessTokenInfo.expires_in; 
    console.log("accessToken " + accessToken); 
    console.log("expirationTime " +expirationTime); 

    var s = "Bearer " + accessToken; 
    request({ 
    headers:{ 
     'Authorization': s 
    }, 
    uri:"https://firebasedynamiclinks.googleapis.com/v1/SHORTLINK/linkStats?durationDays=7", 
    method: "GET", 

    }, function(error, response, body) { 
     console.log(body); 
    }); 
}); 

은 그 결과는 다음과 같다 : 내가 잘못 뭐하는 거지

{ 
    "error": { 
     "code": 403, 
     "message": "Request had insufficient authentication scopes.", 
     "status": "PERMISSION_DENIED" 
    } 
} 

? 나는 우편 배달부의 링크도 테스트합니다. 뭔가 이상하다, 나는 모든 firebase Rest API Doc을 읽었다.

+0

이것은 심각한 버그이며, firebase 팀이이를 수정해야합니다. Firebase 동적 링크는 분석을 수행 할 수 없다면 쓸모가 없습니다. 일반적인 단축 URL과의 차이점은 무엇입니까? 귀하의 회신에 감사드립니다. – faruk

답변

1

관리 SDK는 범위의 특정 세트 토큰을 생성합니다

https://github.com/firebase/firebase-admin-node/blob/master/src/auth/credential.ts#L272은 분명히, 동적 링크 API는 토큰의 추가 OAuth2를 범위를 필요로한다. 이 사용 사례를 위해 OAuth2 라이브러리를 사용하는 것이 좋습니다. Java 또는 Python을 사용하는 경우 Google Cloud는이를 처리하는 라이브러리를 제공합니다.

+0

. access_token에 대해 언급 한 것처럼 범위가 필요하고 그 중 하나를 넣었지만 여전히 동일한 오류가 발생합니다. 나는이 문서를 많이 읽었습니다. (https://firebase.google.com/docs/reference/dynamic-links/analytics). 나는 어떤 범위가 분석 응답을 제공하는 데 완벽한 지 알아야합니다. –

+0

샘플 코드/문서를 개선하기 위해 내부 문제를 열었습니다. –

+0

이 문제점에 대한 구성 요소를 찾을 수 없지만 문제를 생성 할 수없고 Firebase 구성 요소에 대해 문제점을 생성 할 수있는 권한이 없습니다. –