list google drive files with curl

前端 未结 2 2042
春和景丽
春和景丽 2020-12-15 02:06

I\'m trying to get the list of files on Google Drive with curl, but OAuth 2 is getting the best of me.

Here are some of the things I tried:

curl -H \         


        
2条回答
  •  情书的邮戳
    2020-12-15 02:30

    I just spent like 30 minutes to figure this out myself for accessing contacts API and redid the steps for drive API and documented them for future reference. There are 5 steps and the first 4 are one time setup.

    Step 1: Create new OAuth2 credentials

    Note down the client ID and client secret.

    Step 2: Request authorization with drive as scope.

    Using the client ID and https://docs.google.com/feeds as scope, construct the below curl command:

    $ curl -d "client_id=413437979384-05efiod756k5hp2eji5tsn2lmlg0qslc.apps.googleusercontent.com&scope=https://docs.google.com/feeds" https://accounts.google.com/o/oauth2/device/code
    {
      "device_code" : "KRYU-NTVW4/qi6ysOpK2AtsmtZz4MB9LAthlYGGgAepxpBnGQLvhqo",
      "user_code" : "KRYU-NTVW",
      "verification_url" : "https://www.google.com/device",
      "expires_in" : 1800,
      "interval" : 5
    }
    

    Copy the user_code.

    Step 3: Authorize the request.

    Visit the verification URL https://www.google.com/device and enter the copied code.

    Step 4: Obtain access_token.

    Add the device_code obtained from the auth request to the client ID and client secret and construct the below curl command:

    $ curl -d "client_id=413437979384-05efiod756k5hp2eji5tsn2lmlg0qslc.apps.googleusercontent.com&client_secret=0zWNribRJ4PcYWH-rDkCpCcm&grant_type=http://oauth.net/grant_type/device/1.0&code=KRYU-NTVW4/qi6ysOpK2AtsmtZz4MB9LAthlYGGgAepxpBnGQLvhqo" https://www.googleapis.com/oauth2/v4/token
    {
     "access_token": "ya29.kgKW4Z4IDqK7lCjUQw-u5VT2uAx19MtgdoKeAC9ikKYGwKh7Nh46pY8nQsANQ5lRwA",
     "token_type": "Bearer",
     "expires_in": 3600,
     "refresh_token": "1/qinFVaMPYvhWtUtmjb1qCpnQt48XyvQhB_ILZJ4H1Uw"
    }
    

    We now have the required access_token, save it and use it with all the drive REST API requests.

    Step 5: Drive API request.

    $ curl -H 'GData-Version: 3.0' -H 'Authorization: Bearer ya29.kgKW4Z4IDqK7lCjUQw-u5VT2uAx19MtgdoKeAC9ikKYGwKh7Nh46pY8nQsANQ5lRwA' https://www.googleapis.com/drive/v2/files
    {
     "kind": "drive#fileList",
    ...
    

提交回复
热议问题