I’m trying to access a published Google spreadsheet using the Google Drive API. However, I run into the following issues which are elaborated below (my code is at the bottom),
- I. Running my project I receive the
following error: TlsException:
Invalid certificate received from
server. Error code:
0xffffffff800b010a. - Looking
up the error leads me to having to
call the mozroots.exe --import
–sync
1) Running my project I receive the following error in Unity:
TlsException: Invalid certificate
received from server. Error code:
0xffffffff800b010a
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates
(Mono.Security.X509.X509CertificateCollection
certificates)
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1
()
Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process
() (wrapper
remoting-invoke-with-check)
Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process
()
Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage
(Mono.Security.Protocol.Tls.TlsStream
handMsg)
Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback
(IAsyncResult asyncResult) Rethrow as
IOException: The authentication or
decryption has failed.
Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback
(IAsyncResult asyncResult) Rethrow as
WebException: Error getting response
stream (Write: The authentication or
decryption has failed.): SendFailure
System.Net.HttpWebRequest.EndGetResponse
(IAsyncResult asyncResult)
System.Net.HttpWebRequest.GetResponse
()
Google.GData.Client.GDataRequest.Execute
() Rethrow as GDataRequestException:
Execution of request failed:
https://docs.google.com/spreadsheets/d/1CTyUyDj-yTWb1GjUhEsWE0kS_h41qbfN31yHrU8I75g/pubhtml?gid=1124040655&single=true
Google.GData.Client.GDataRequest.Execute
()
Google.GData.Client.GDataGAuthRequest.Execute
(Int32 retryCounter)
2) Looking up the error leads me to “solutions” saying I should call the mozroots.exe --import --sync (supplied with monodevelop).
However I either receive:
Downloading from
‘http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/
builtins/certdata.txt?raw=1’…
Couldn’t retrieve the file using the
supplied information.
OR
Downloading from
‘http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/
builtins/certdata.txt?raw=1’…
Importing certificates into user
store… Error:
System.NullReferenceException: Object
reference not set to an instance of
an object. at
Mono.Security.X509.X509Certificate.get_Hash()
at
Mono.Security.X509.X509CertificateCollection.IndexOf(X509Certificate
value ) at
Mono.Security.X509.X509CertificateCollection.Contains(X509Certificate
valu e) at
Mono.Tools.MozRoots.Process() at
Mono.Tools.MozRoots.Main(String
args)
My code for the API is:
SpreadsheetsService service = new SpreadsheetsService("exampleCo-exampleApp-1");
SpreadsheetQuery query = new SpreadsheetQuery("https://docs.google.com/spreadsheets/d/1CTyUyDj-yTWb1GjUhEsWE0kS_h41qbfN31yHrU8I75g/pubhtml?gid=1124040655&single=true");
SpreadsheetFeed feed = service.Query(query);
//Console.WriteLine("Your spreadsheets:");
foreach (SpreadsheetEntry entry in feed.Entries)
{
//Console.WriteLine(entry.Title.Text);
Debug.Log(entry.ToString());
}