Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { Component } from 'react'
- import GooglePicker from 'react-google-picker';
- export class App extends Component {
- state = {
- googleAuthToken: ''
- }
- componentDidMount() {
- var script = document.createElement('script');
- script.onload = this.handleClientLoad
- script.src = "https://apis.google.com/js/api.js";
- document.body.appendChild(script);
- }
- handleClientLoad = () => {
- console.log('GAPI script loaded...');
- window.gapi.load('client:auth2');
- }
- render() {
- return (
- <div>
- <a id="download-file">Download File</a>
- <GooglePicker clientId={'<MY_CLIENT_ID>'}
- developerKey={'<MY_DEVELOPER_KEY>'}
- scope={['https://www.googleapis.com/auth/drive.readonly']}
- onChange={data => console.log('on change:', data)}
- onAuthenticate={token => {
- console.log('oauth token:', token)
- this.setState({
- googleAuthToken: token
- })
- }}
- onChange={
- data => {
- if (data["action"] === "picked") {
- console.log('PICKED:', data["docs"])
- const fileId = data.docs[0].id
- console.log(fileId);
- var request = window.gapi.client.request({
- 'path': `https://www.googleapis.com/drive/v3/files/${fileId}?alt=media`,
- 'method': 'GET'
- });
- request.execute((json, raw) => {
- console.log('JSON: ', json, '\nRAW: ', raw);
- var val = JSON.parse(raw).gapiRequest.data.body;
- var myBlob = new Blob([val], { type: 'application/pdf' });
- var url = window.URL.createObjectURL(myBlob);
- document.getElementById('download-file').href = url;
- });
- }
- }}
- onAuthFailed={data => console.log('on auth failed:', data)}
- multiselect={true}
- navHidden={true}
- authImmediate={false}
- mimeTypes={['application/pdf']}>
- <button>Select File</button>
- </GooglePicker>
- </div>
- )
- }
- }
- export default App
Add Comment
Please, Sign In to add comment