This is an article explaining the code needed to write a PHP script which generates an access token for a service account which in turn is used to list files in a team's Google Drive.

This is very different to my code for OAuth when attended: Google Authentication - OAuth 2.0 using PHP/cURL... In that this one doesn't prompt for a user. Again this script doesn't need the client libraries, composer, vendor, etc.

This took me the best part of a month to get working. It is taken from Google's documentation as well as other forums and websites that try to explain it. Do not waste your time like I did on the public key, verifying a JWT signature, or including any third-party libraries. You can do it in pure PHP and all you need is the JSON key that you generated in your Google console.

Applies to:
  • Google Drive REST API v3
  • Google OAuth 2.0 v4
  • Google Cloud Platform IAM
  • Google Suite
  • PHP v5.6.35

I'm going to go through each section of the code to go through the logic and highlight any changes you may need to make.

A super quick article to show how to link to the thumbnail image of a Google Drive file, in this case a video file.

The hardest part of this is to get the Google Drive File ID (which you need for the below). The image link (src) will be as below but then this is a redirect to the actual thumbnail stored by Google Drive:

// where <GOOGLE_DRIVE_FILE_ID> is the file id

This is an article which lists the functions necessary to process Google Authentication using OAuth2.0. These functions allow a script to simply be loaded and to either create a token file, or use the existing one as long as it hasn't expired.

Update 2019
This script requires a user to authenticate the google account. I have a newer article called Google Drive API v3 - OAuth2 using Service Account in PHP/JWT documenting a script which accesses a Google Drive using a Service Account (unattended).

This is a big cop-out as I simply took someone else's functions and upgraded them to use the mentioned token based authentication. I find myself going through the motion and designing on a per-app basis so I wanted a standard way of doing it and I'll update this article as I improve on the code.


So this is supposed to be a quick article detailing how I used a PHP function to upload a video file to Google Drive. Note that this example does not involve installing the Google Client Library for PHP. So no classes or built-in functions that you didn't write or know what they're doing.

The objective here is to upload a video file to my Google Drive. This assumes you have already "Enabled the Drive API" via your Google Developers console as well as gotten your OAuth 2.0 access/refresh tokens and specified the appropriate scopes.

The scopes I chose were to do with getting a working example rather than the recommended scope, though you may only need the first (untested):

I've listed below 3 methods, the first follows the manual (or the logic thereof as I don't use the client library) and is a function sending two requests, the second is the appropriate multipart function which uploads and names the file in a single request, and the third is a 'nice-to-have' upload to the specified folder.

A reference to what size an image background should be set to for various screen sizes.

A background image I was using was unedited at 1600x2133 (364kb) and was not displaying on smaller devices. Configuring drawables for each layout seemed to be the only solution.

res/drawable-ldpi      240x320
res/drawable-mdpi      320x480
res/drawable-hdpi      480x800
res/drawable-xhdpi     640x960
res/drawable-xxhdpi    960x1440
res/drawable-xxxhdpi   // for launcher only 640dpi
res/drawable-tvdpi     1.33*mdpi // not needed as mdpi or hdpi is used

Related Articles

Joes Revolver Map

Joes Word Cloud

script   error   where   work   note   parameter   following   file   system   version   database   files   uploaded   google   user   joomla   need   code   added   page   windows   list   would   website   select   mysql   time   table   zoho   used   search   copy   site   could   value   license   name   solution   find   display   using   report   first   content   source   server   program   data   html   date   JoelLipman.Com


Badge - Certified Zoho Creator Associate
Badge - Certified Zoho Creator Associate
© 2021 Joel Lipman .com. All Rights Reserved.