Hi
My first project, tried to read from Google Sheet, then type into a website.
Followed instruction to add Api Key for GSuite Application Scope as screenshot
Message: Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
Message[The caller does not have permission] Location[ - ] Reason[forbidden] Domain[global]
]
Exception Type: Google.GoogleApiException
RemoteException wrapping Google.GoogleApiException: Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
Message[The caller does not have permission] Location[ - ] Reason[forbidden] Domain[global]
]
at Google.Apis.Requests.ClientServiceRequest1.<ParseResponse>d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Google.Apis.Requests.ClientServiceRequest1.d__27.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at UiPath.GSuite.Activities.API.SheetsExtensions.d__0.MoveNext()
— End of stack trace from previous location where exception was thrown —
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at UiPath.GSuite.Activities.ReadRange.d__22.MoveNext()
— End of stack trace from previous location where exception was thrown —
at UiPath.GSuite.Activities.AsyncTaskCodeActivityImplementation.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at UiPath.GSuite.Activities.AsyncTaskCodeActivity.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
@MubieSam_Lin API keys is an old fashion to Authenticate client in compare to OAuth. It is just a string which is matched to stored list on google server.
OAuth is a conversation between Browser and server. As I know, google uses REST api. REST stands for REpresentational State Transfer , which probably doesn’t help you that much in understanding what it is. Pragmatically, it means that you or your program communicates with a remotely-run service using standard web commands and protocols such as HTTP requests and responses. You send the service an API command wrapped in an HTTP request, and it responds with a success or failure indicator and any results data, all wrapped in an HTTP response.
So I am not aware about any extra information in regards to OAuth in UiPath Universe,
Also I’d like to notice that Google limiting applications/services where you can use just API Key to get access to services. Check that Gsuite among them. Everything is changing quite quickly. Does Gsuite allow to use API Keys ?
Thanks for the hint, change the permission of the Google sheet to public seems solve the 403 error, but it got 400 error for unable to parse range, any suggestion?
@DanielMitchell Thanks for the headup, my apology for not doing the search enough.
The problem is that my SheetName is in Chinese, which will be different from “Sheet1” in UiPath.