handle errors when received an array from api (#289)

diff --git a/googleapiclient/errors.py b/googleapiclient/errors.py
index 1b79d2f..e6f1f9d 100644
--- a/googleapiclient/errors.py
+++ b/googleapiclient/errors.py
@@ -52,8 +52,12 @@
     reason = self.resp.reason
     try:
       data = json.loads(self.content.decode('utf-8'))
-      reason = data['error']['message']
-    except (ValueError, KeyError):
+      if isinstance(data, dict):
+        reason = data['error']['message']
+      elif isinstance(data, list) and len(data) > 0:
+        first_error = data[0]
+        reason = first_error['error']['message']
+    except (ValueError, KeyError, TypeError):
       pass
     if reason is None:
       reason = ''