pybliometrics-dev / pybliometrics

Python-based API-Wrapper to access Scopus
https://pybliometrics.readthedocs.io/en/stable/
Other
407 stars 127 forks source link

Not authorised to access resource, despite being connected to Universities network. #288

Closed riddhis5 closed 1 year ago

riddhis5 commented 1 year ago

pybliometrics version:

Code to reproduce the bug: When running pybliometrics I am faced with the following issue: The requestor is not authorized to access the requested view or fields of the resource.

I am on my Universities network, and have a subscription to Elsevier, however I am still faced with this error. Any help on this issue will be greatly appreciated.

This is the code that I am running: from pybliometrics.scopus import AbstractRetrieval ab = AbstractRetrieval("10.1097/EE9.0000000000000098") ab.title

Expected behavior: Return relevant information

james-geiger commented 1 year ago

Hi @riddhis5 --

I know that some universities authenticate through Elsevier using a single sign-on mechanism, and not through a proxy, which can complicate authentication to the API.

You will still need to ensure that you have a valid API key set up through Elsevier with your university profile. See your Elsevier dev portal. Ensure that this is the same key you have set up in your pybliometrics.cfg file. See the Config Runtime section of the docs.

Additionally, you may find that you get all the data you need using the view="META" parameter on the AbstractRetrieval class, i.e. ab = AbstractRetrieval("10.1097/EE9.0000000000000098", view="META").

Personally, I have to use an Insttoken even though I am on the network using a University device. You might have some luck reaching out to Elsevier support.

Hope this helps!

riddhis5 commented 1 year ago

Hello, Thanks for your response. I was using Google Colab to run my code, which is the reason as to why the code was producing a bug. When running the code using Jupyter Notebook, the issue was fixed.

james-geiger commented 1 year ago

@riddhis5 Glad to year you got it figured out! Theoretically, you could run the code in Google Colab, but you'd definitely need an Insttoken at that point.

Also, not sure how well the caching functionality would work in the cloud, which might inadvertently use up your request allotment.