Print

Print


Thanks for the pointer to the tutorials, Evan.  That was interesting and
helpful.

What worries me about Dr Mukhopadhyay's problem is that he needs to connect
to an HTTPS endpoint, and it looks to me like the OpenRefine Jython doesn't
include SSL support.

This would be *much* easier if you could just slide the requests library
into OpenRefine's Jython environment.

Happy New Year from Vegas!

Graeme Williams




On Wed, Jan 1, 2020 at 10:22 PM evan will <[log in to unmask]> wrote:

> I wrote a bit about it in this Programming Historian lesson:
>
> https://programminghistorian.org/en/lessons/fetch-and-parse-data-with-openrefine#example-3-advanced-apis
> (sorry, I need to update this lesson sometime!)
> Basically, it depends on how the service wants the API key passed,
> sometimes as headers or sometimes as a data value. Refine's Jython is 2.7,
> and there is a good "how to" doc with examples of both cases available
> here:
> https://docs.python.org/2/howto/urllib2.html
>
> If the api key is one of the data values (which seems to be in your curl
> example), you can pass an array of key/value pairs to urllib request
> object, something like (from the howto above):
>
> values = {'name' : 'Michael Foord',
>           'location' : 'Northampton',
>           'language' : 'Python' }
> data = urllib.urlencode(values)req = urllib2.Request(url, data)
>
>
> If you need to pass the api key as a header, you add another value to the
> request object, something like:
>
> headers = {'User-Agent': user_agent}req = urllib2.Request(url, data,
> headers)
>
>
>
> On Wed, Jan 1, 2020 at 7:59 PM CODE4LIB automatic digest system <
> [log in to unmask]> wrote:
>
> > There is 1 message totaling 35 lines in this issue.
> >
> > Topics of the day:
> >
> >   1. API key handling in python/jython
> >
> > ----------------------------------------------------------------------
> >
> > Date:    Wed, 1 Jan 2020 15:12:30 +0530
> > From:    Parthasarathi Mukhopadhyay <[log in to unmask]>
> > Subject: API key handling in python/jython
> >
> > Dear All
> >
> > I am trying to pass python/jython expression in Openrefine for sentiment
> > analysis for a textual data column. The service supports non-GET call
> like:
> >
> > curl -X POST -F 'text=["Come on,lets play together",
> > "Team performed well overall."]' -F
> > 'api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxx'
> > https://apis.paralleldots.com/v4/sentiment_batch
> >
> > How this can be reformatted inside python/jython expression in
> Openrefine?
> >
> > I am able to convert such expression where there is no API key
> > authentication
> > required (like NLTK - https://text-processing.com/) but don't have any
> > clue how to handle API key in
> > post=urllib2.urlopen().
> >
> > Help is solicited...
> >
> > Regards
> >
> > -----------------------------------------------------------------------
> > Dr. Parthasarathi Mukhopadhyay
> > Professor, Department of Library and Information Science,
> > University of Kalyani, Kalyani - 741 235 (WB), India
> > -----------------------------------------------------------------------
> >
> > ------------------------------
> >
> > End of CODE4LIB Digest - 30 Dec 2019 to 1 Jan 2020 (#2020-1)
> > ************************************************************
> >
>