enricobacis/wos

Connection doesn't work

SilasK opened this issue · 4 comments

I have suds version 0.4

Error log:

ERROR:suds.client:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://auth.cxf.wokmws.thomsonreuters.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <ns0:Body>
      <ns1:authenticate/>
   </ns0:Body>
</SOAP-ENV:Envelope>
---------------------------------------------------------------------------
WebFault                                  Traceback (most recent call last)
<ipython-input-26-58c4e52f0687> in <module>()
      2 import wos.utils
      3 
----> 4 with WosClient(user="silas.kieser@gmail.com", password='xxxxx') as client:
      5     print(wos.utils.query(client, 'AU=Knuth Donald'))

c:/Anaconda/lib/site-packages/wos\client.pyc in __enter__(self)
     37     def __enter__(self):
     38         """Automatically connect when used with 'with' statements."""
---> 39         self.connect()
     40         return self
     41 

c:/Anaconda/lib/site-packages/wos\client.pyc in connect(self)
     53         """Authenticate to WOS and set the SID cookie."""
     54         if not self._SID:
---> 55             self._SID = self._auth.service.authenticate()
     56             print('Authenticated (SID: %s)' % self._SID)
     57 

c:/Anaconda/lib/site-packages/suds\client.pyc in __call__(self, *args, **kwargs)
    540                 return (500, e)
    541         else:
--> 542             return client.invoke(args, kwargs)
    543 
    544     def faults(self):

c:/Anaconda/lib/site-packages/suds\client.pyc in invoke(self, args, kwargs)
    600                 timer)
    601         timer.start()
--> 602         result = self.send(soapenv)
    603         timer.stop()
    604         metrics.log.debug(

c:/Anaconda/lib/site-packages/suds\client.pyc in send(self, soapenv)
    647             else:
    648                 log.error(self.last_sent())
--> 649                 result = self.failed(binding, e)
    650         return result
    651 

c:/Anaconda/lib/site-packages/suds\client.pyc in failed(self, binding, error)
    700         if status == 500:
    701             if len(reply) > 0:
--> 702                 r, p = binding.get_fault(reply)
    703                 self.last_received(r)
    704                 return (status, p)

c:/Anaconda/lib/site-packages/suds\bindings\binding.pyc in get_fault(self, reply)
    263         p = unmarshaller.process(fault)
    264         if self.options().faults:
--> 265             raise WebFault(p, faultroot)
    266         return (faultroot, p.detail)
    267 

WebFault: Server raised fault: 'No matches returned for Username silas.kieser@gmail.com'

Are you sure you have the WWS Premium access to WOS? The 'No matches returned for Username silas.kieser@gmail.com' is what WOS is giving back, so the problem is not at library level but at subscription level.

I have the same problem. What is WWS premium access? I passed 'lite=Ture' but it still give me the same username error.

I am not affiliated with Thomson Reuters, so I cannot check your access level. The library uses the Web of Science WWS (Web Services) API your institution has to pay for the Web of Science Core Collection access.

The simple registration to Web of Knowledge / Web of Science does not entitle you to query the service. So if you receive errors like No matches returned for Username or No matches returned for IP, these are errors thrown directly by the WOS API. This means that the library is correctly communicating with the server, but you do not have access to the Web Services API.

If this is the case and you think you should be entitled to access the services, please contact Thomson Reuters support, because the problem is on their side.

I also updated the README with the information that I gave here so that people can tell where is the problem without opening issues.