2017-12-11 1 views
0

내 웹 사이트에서 Google oAuth를 사용하여 로그인하고 사용자가 Google 드라이브에서 사진을 공유하고 있습니다. 지금, 구글은 나에게 다음과 같은 종류의 링크를 검색합니다google api 이미지에서 base64 받기

https://doc-0o-30-docs.googleusercontent.com/docs/securesc/dpstkbb0rv4jmf62kb8dc9m8ijh53ocp/1hotfemebktd56o93gcoi76k89edbtjp/1512662400000/05170378500578169489/05170378500578169489/1MxIJ5EBLcIVtqxjGi_ZoYYqpw1UQHBiCRA?e=download&gd=true 

내가 보안 이유로이 URL을 변경했습니다를

문제가 내가 특정 폴더 관련을에 저장하려면이 이미지의 base64로 얻을 싶어한다 하지만 사용자에게 어떤 이유로. PHP 함수를 사용하여 file_get_contents(); 그것은 작동하지 않습니다.

나는 JS 캔버스를 사용하여 img.toDataURL()으로 가져 왔지만 여전히 실패합니다.

이 작업을 수행 할 수있는 방법이 있습니까?

답변

0

문제점을 발견했습니다. google api로 콘텐츠를 얻으려면 먼저 올바른 범위를 설정해야합니다. 이 경우 https://www.googleapis.com/auth/drive입니다.

그래서 get_file_contents()에서 "인증"매개 변수를 전달하는 컨텍스트를 access_token과 함께 설정해야합니다. 코드는 다음과 같습니다.

$context = stream_context_create(array(
      'http' => array(
       'header' => "Authorization: Bearer [ACCESS_TOKEN_HERE]" 
      ) 
     )); 

    $conteudo = file_get_contents($urlImagem, false, $context); 

이것은 내 해결책이었습니다. 나는 그것이 다른 누군가를 돕기를 바랍니다.