내가 성공적으로 특정 테스트 계정의 앱 활동을 기록하는 Google+ 앱이 아직 다른 사람은 401 권한 오류를 반환하기위한 "401 권한"Google+에 CreateActivity 반환 특정 계정
{
"error": {
"errors": [
{
"domain": "global",
"reason": "unauthorized",
"message": "Unauthorized"
}
],
"code": 401,
"message": "Unauthorized"
}
}
가 나는 또한이났습니다 응답 헤더 :
WWW-AuthenticateBearer realm="https://www.google.com/accounts/AuthSubRequest", error=invalid_token
이 유효하지 않은 토큰을 표시하는 것,하지만 난 스크립트가 특정 테스트 계정을 사용하여 완벽하게 작동 및 기록, 특히 때문에 ... 내가 잘못 gapi.auth.authorize을 사용하고 방법을 잘 모르겠어요 G + 순간까지 문제 없습니다. 특정 테스트 계정이 앱 활동 (또는 아래 코드에 문제가있는 것) 작성에 대해 인증 할 수없는 이유를 제안 할 수있는 사람이 있으면 알려 주시기 바랍니다.
// first call gapi.auth.authorize with immediate:true:
_checkAuth = function _checkAuth(){
gapi.auth.authorize({
client_id : 'XXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com',
scope : 'https://www.googleapis.com/auth/plus.login',
request_visible_actions : 'http://schemas.google.com/CreateActivity',
immediate : true
}, function(authResult){
if(!authResult || authResult.error){
_signIn();
}else{
_performAction();
}
});
},
// if not logged in, call gapi.auth.authorize with immediate:false:
_signIn = function _signIn(){
gapi.auth.authorize({
client_id : 'XXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com',
scope : 'https://www.googleapis.com/auth/plus.login',
request_visible_actions : 'http://schemas.google.com/CreateActivity',
immediate : false
}, function(token){
gapi.auth.setToken(token);
_performAction();
});
},
// create activity
_performAction = function _performAction(){
gapi.client.load('plus','v1', function(){
gapi.client.setApiKey('XXXXXXXXXXXXXXXXXXXXXXX');
var payload = {
"type" : 'http://schemas.google.com/CreateActivity'
};
payload.target = {
"id" : "myappid",
"image" : "http://www.example.com/xxxxxxxxxxx.jpg",
"type" : 'http://schema.org/CreativeWork',
"description" : "description of activity",
"name" : "name of activity"
};
var args = {
'path' : '/plus/v1/people/me/moments/vault',
'method' : 'POST',
'body' : JSON.stringify(payload),
'callback' : function(response) {
console.log(response); // error
}
};
// triggers 401 error for some accounts
gapi.client.request(args);
});
},
감사 답장을 너무 많이. 귀하의 데모는 문제가있는 테스트 계정으로 작동하지만 아무런 문제없이 앱 활동을 기록합니다 ... 그런 다음에 내 환경으로 소스 코드를 복사 한 다음 client_id 및 payload 대상 ID를 변경하고 다시 한 번 401 오류가 발생했습니다. 개발자 콘솔을보고 있는데 모든 것이 올바르게 설정되어있는 것 같습니다 (자바 스크립트 기반 등). 어딘가에 조정해야하는 설정이 있는지 궁금합니다. –
사용중인 모든 작업이 request_visible_actions에 설정되어 있습니까? 응답에서 예제 단추를 제공 했으므로 동의 유형 대화 상자에 활동 유형이 표시되므로 제대로 설정했음을 알 수 있습니다. – class
@class "replacewithuniqueid for addtarget"을 (를) 다시 작성 하시겠습니까? 이 정보는 어디에서 얻습니까? – Supertecnoboff