ODBC Driver for eBay

Build 23.0.8839

Linux DSN Configuration

This section describes how to set up ODBC connectivity and configure DSNs on several Linux distributions: Debian-based systems, like Ubuntu, and Red Hat Linux platforms, like Red Hat Enterprise Linux (RHEL), CentOS, and Fedora.

Minimum Linux Versions

Here are the minimum supported versions for Red Hat-based and Debian-based systems:

OSMin. Version
Ubuntu11.04
Debian7
RHEL6.9
CentOS6.9
Fedora13
SUSE12.1

Installing the Driver Dependencies

Run the following commands as root or with sudo to install the necessary dependencies:

  • Debian/Ubuntu:
    apt-get install libc6 libstdc++6 zlib1g libgcc1
  • RHEL/CentOS/Fedora:
    yum install glibc libstdc++ zlib libgcc

Here are the corresponding libraries required by the driver:

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
libc6glibclinux-vdso.1
libc6glibclibm.so.6
libc6glibclibrt.so.1
libc6glibclibdl.so.2
libc6glibclibpthread.so.0
libc6glibclibc.so.6
libc6glibcld-linux-x86-64.so.2
libstdc++6libstdc++libstdc++.so.6
zlib1gzliblibz.so.1
libgcc1libgcclibgcc_s.so.1

Installing the Driver

You can use standard package management systems to install the driver.

On Debian-based systems, like Ubuntu, run the following command with root or sudo:

dpkg -i /path/to/driver/setup/EbayODBCDriverforUnix.deb 

On systems that support the RPM package format, run the following command with root or sudo:

rpm -ivh /path/to/driver/EbayODBCDriverforUnix.rpm 

Licensing the Driver

Run the following commands to license the driver. To activate a trial, omit the <key> input.

cd /opt/cdata/cdata-odbc-driver-for-ebay/bin/
sudo ./install-license.sh <key>

Connecting through the Driver Manager

The driver manager loads the driver and passes function calls from the application to the driver. You need to register the driver with the driver manager and you define DSNs in the driver manager's configuration files.

The driver installation registers the driver with the unixODBC driver manager and creates a system DSN. The unixODBC driver manager can be used from Python and from many other applications. Your application may embed another driver manager.

Creating the DSN

See Using unixODBC to install unixODBC and configure DSNs. See Using the DataDirect Driver Manager to create a DSN to connect to OBIEE, Informatica, and SAS.

Connecting to eBay APIs

Set the following to connect to eBay:

  • SiteID: Set this to the eBay site ID. By default this is "0" (the U.S. site).
  • UseSandbox: Set this to True to use a eBay sandbox account. By default, the driver connects to production environments.
  • RuName: Set this to the RuName (eBay Redirect URL name) that you will use to sign-in. Find this in your eBay Sign-in Settings.

Authenticating to eBay

The driver can authenticate to eBay using either the OAuth 2.0 authentication standard or Auth'n'Auth, the traditional authentication used by the eBay APIs.

User Accounts (OAuth)

Set AuthScheme to OAuth.

Desktop Applications

You need to create a custom OAuth application. See Creating a Custom OAuth App for information about creating custom applications.

Get and Refresh the OAuth Access Token

After setting the following, you are ready to connect:

  • InitiateOAuth: Set this to GETANDREFRESH. You can use InitiateOAuth to avoid repeating the OAuth exchange and manually setting the OAuthAccessToken.
  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • CallbackURL: Set to a URL containing the server name and port of the device running the driver. Any localhost address is usable. The default callback URL is: http://localhost:33333.
When you connect, the driver opens eBay's OAuth endpoint in your default browser. Log in and grant permissions to the application. The driver then completes the OAuth process:
  1. The driver obtains an access token from eBay and uses it to request data.
  2. The OAuth values are saved in the location specified in OAuthSettingsLocation, to be persisted across connections.
The driver refreshes the access token automatically when it expires.

Headless Machines

To configure the driver, use OAuth with a user account on a headless machine. You need to authenticate on another device that has an internet browser.

  1. Choose one of two options:
    • Option 1: Obtain the OAuthVerifier value as described in "Obtain and Exchange a Verifier Code" below.
    • Option 2: Install the driver on a machine with an internet browser and transfer the OAuth authentication values after you authenticate through the usual browser-based flow.
  2. Then configure the driver to automatically refresh the access token on the headless machine.

Option 1: Obtain and Exchange a Verifier Code

To obtain a verifier code, you must authenticate at the OAuth authorization URL.

Follow the steps below to authenticate from the machine with an internet browser and obtain the OAuthVerifier connection property.

  1. Choose one of these options:
    • Set the following properties:
      • InitiateOAuth: Set to OFF.
      • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
      • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
      Then call the GetOAuthAuthorizationURL stored procedure with the appropriate CallbackURL and RuName. Open the URL returned by the stored procedure in a browser.
  2. Log in and grant permissions to the driver. You are then redirected to the redirect URI. There will be a parameter called code appended to the redirect URI. Note the value of this parameter. If you're using the recommended value https://oauth.cdata.com/oauth/ as your "auth accepted URL", this value will be BASE64 encoded. You will need to decode this value before proceeding. Later you will set this in the OAuthVerifier connection property.
Next, you need to exchange the OAuth verifier code for OAuth refresh and access tokens.

On the headless machine, set the following connection properties to obtain the OAuth authentication values:

  • InitiateOAuth: Set this to REFRESH.
  • OAuthVerifier: Set this to the noted verifier code (the value of the code parameter in the redirect URI).
  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • OAuthSettingsLocation: Set this to persist the encrypted OAuth authentication values to the specified location.

Test the connection to generate the OAuth settings file, then re-set the following properties to connect:

  • InitiateOAuth: Set this to REFRESH.
  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • OAuthSettingsLocation: Set this to the location containing the encrypted OAuth authentication values. Make sure this location gives read and write permissions to the driver to enable the automatic refreshing of the access token.

Option 2: Transfer OAuth Settings

Prior to connecting on a headless machine, you need to install and create a connection with the driver on a device that supports an internet browser. Set the connection properties as described in "Desktop Applications" above.

After completing the instructions in "Desktop Applications", the resulting authentication values are encrypted and written to the location specified by OAuthSettingsLocation. The default filename is OAuthSettings.txt.

Test the connection to generate the OAuth settings file, then copy the OAuth settings file to your headless machine.

On the headless machine, set the following connection properties to connect to data:

  • InitiateOAuth: Set this to REFRESH.
  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • OAuthSettingsLocation: Set this to the location of the OAuth settings file you copied from the machine with the browser. Make sure this location gives read and write permissions to the driver to enable the automatic refreshing of the access token.

User Accounts with Legacy Apps (Auth'n'Auth)

The driver can authenticate using eBay's legacy Auth'n'Auth protocol. Select this authentication scheme if you're using an older application that was built to use Auth'n'Auth.

Set AuthScheme to AuthNAuth.

You need to create a custom OAuth application. See Creating a Custom OAuth App for more information.

Access Token

An OAuthAccessToken is required when authenticating via Auth'n'Auth. Set the following connection properties to obtain the OAuthAccessToken:

  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • DevID: Set this to the Developer ID from your keyset.

Then call stored procedures to complete the token exchange:

  1. Call the GetOAuthAuthorizationURL stored procedure. Set the RuName input to the eBay Redirect URL you specified in your app settings. The stored procedure returns the URL to the OAuth endpoint.

  2. Navigate to the URL that the stored procedure returned in Step 1. Log in, and authorize the web application. After authenticating, the browser redirects you to the redirect URI. There will be a parameter called sessionid appended to the redirect URI. Note the value of this parameter. If you are using the recommeded https://oauth.cdata.com/oauth/ as your "auth accepted URL", the value will be BASE64 encoded and will need to be decoded before proceeding.
  3. Call the GetOAuthAccessToken stored procedure. Set the AuthMode input to WEB. Set the SessionId input parameter to either the value of the 'sessionid' in the query string of the authorization URL or the BASE64 decoded session ID from the callback URL.

Set the following connection properties to connect to data:

  • OAuthClientId: Set this to the App ID (Client ID) in your keyset.
  • OAuthClientSecret: Set this to the Cert ID (Client Secret) in your keyset.
  • OAuthAccessToken: Set this to the Auth'n'Auth token returned by GetOAuthAccessToken.

    Note: Auth'n'Auth tokens expire after 18 months. You will need to generate a new token after the token expires.

  • DevID: Set this to the Developer ID from your keyset.

Refreshing OAuth Values

The driver can refresh the temporary OAuth access tokens obtained during the browser-based OAuth authentication exchange. By default, the driver saves the encrypted tokens in the odbc.ini file corresponding to the DSN. Access to this odbc.ini file can be restricted in the case of System DSNs.

To enable the automatic token exchange, you can give the driver write access to the system odbc.ini. Or, you can set the OAuthSettingsLocation connection property to an alternate file path, to which the driver would have read and write access.

    OAuthSettingsLocation=/tmp/oauthsettings.txt
    

Installing Dependencies for OAuth Authentication

The OAuth authentication standard requires the authenticating user to interact with eBay, using a web-browser. If the first OAuth interaction is to be done on the same machine the driver is installed on, for example, a desktop application, the driver needs access to the xdg-open program, which opens the default browser.

To satisfy this dependency, install the corresponding package with your package manager:

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
xdg-utilsxdg-utilsxdg-open

Set the Driver Encoding

The ODBC drivers need to specify which encoding to use with the ODBC Driver Manager. By default, the CData ODBC Drivers for Unix are configured to use UTF-16 which is compatible with unixODBC, but other Driver Managers may require alternative encoding.

Alternatively, if you are using the ODBC driver from an application that uses the ANSI ODBC API it may be necessary to set the ANSI code page. For example, to import Japanese characters in an ANSI application, you can specify the code page in the config file '/opt/cdata/cdata-odbc-driver-for-ebay/lib/cdata.odbc.ebay.ini':

[Driver]
AnsiCodePage = 932

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839