Skip to content

Notes from the week of 2011-04-24

PayPal X Platform

Wireless and mobility

APIs and development

Personal things

Running

LinkedIn JavaScript API console

Payment pain points

What are your payment pain points?

I’m currently  researching payment and transaction types, use cases, and the like that  are difficult for developers to understand or implement.  I’m focusing  upon mobility, identity, and security related issues, but I am interested  in covering all commerce issues.  And not just online or mobile  commerce, either; in fact, offline, “real world” uses of PayPal  technology are just as important for me to cover, too.

I have a list of issues I’ve put together that I definitely want to address, but more importantly, I want to know what you would like to see covered.  I plan to use this information for an upcoming book on PayPal-based development, as well as future articles and blog posts for the PayPal X DevZone.

Where could the PayPal X APIs, tools, and examples be improved?  What would  you like to be able to do with the PayPal X Platform that you cannot  currently do today, or at least can’t figure out how to do?  What gives you headaches?

Click here to leave a comment or contact me directly with your feedback via the links in the complete post on the PayPal X Developer Network.

LinkedIn APIs: Third party libraries

This is the fourth and final installment in my LinkedIn APIs series.  Previous posts showed you how to use their REST APIs, embeddable widgets, and JavaScript API.

This time I want to point out an even simpler way to make use of their REST APIs:  Third party libraries for your programming language(s) of choice.

LinkedIn’s developer portal provides a page on third party libraries and tools (click here to access it).  In addition to LinkedIn’s own JavaScript API, they list libraries supporting development in a variety of languages including Java (plain old as well as Android), Objective C (iOS/iPhone, two options actually), Python (also lists two different libraries), PHP, Ruby, and more.  Truth be told, these libraries run the gamut from easy-peasy to lots-of-work-required; you should try out any given library with some sample calls to evalute its applicability to your project before making a serious commitment to using it in a production payments application.

LinkedIn’s page also links to documentation and discussions of how to support development against their REST API for languages for which a full on third party library is not currently available.  So AS3, C#, C++, and Perl programmers, there’s something in here for you too.

Click here to read the complete post on the PayPal X Developer Network including links to additional examples using Python.

LinkedIn APIs: The power of REST via JavaScript

In previous posts I’ve written about LinkedIn’s REST API and embeddable widgets.  In this post I want to show you how you can bring the power of their REST API to bear in Ajax apps using the LinkedIn JavaScript API.

LinkedIn says the following on its JSAPI reference page:

This API bridges between the user’s browser and our REST endpoint. As a developer, you use a simple, consistent JavaScript interface to interact with the fundamental LinkedIn data types (Profiles, Connections, People Search, etc). Under the hood, we translate your request into a REST call which we make on your behalf via Ajax. All the details of cross domain Ajax and OAuth 2 are abstracted away – you simply invoke a method and receive JSON in return.

The API reference lists a number of actions you may wish to perform and provides examples of each of them.  Some of the available actions include initializing the framework, accessing data about LinkedIn members (the bulk of the API), rendering login and share buttons, authentication, event, and UI features.  I’ve provided a couple of examples below to give you a feel for what’s possible.

First, if you want to use the JSAPI in your browser app, you will need to have the user login.  This gives you access to their member information.  To create a “Sign in with LinkedIn” button like this:

https://i0.wp.com/developer.linkedin.com/servlet/JiveServlet/downloadImage/102-1224-8-1125/-1--1/signin_with_linkedin.png

you simply need to include this bit of JavaScript in your site page(s):

<script type="IN/Login" data-onAuth="[onAuthCallback]" data-onLogout="[onLogoutCallback]"> 
[TEMPLATE]
</script>

where you may use the templating capabilities described in the reference page in place of the template placeholder above.

Click here to read the complete post on the PayPal X Developer Network including a people search example which uses the LinkedIn JavaScript API Developer Console.

LinkedIn JavaScript console with PeopleSearch example

Notes from the week of 2011-04-17

PayPal X Platform

APIs and development

Personal things

Running

Tulsa Running Club April/May newsletter

Lots of new races this spring. It’s going to be hard not to over race the next couple of months!

http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf

Selling Digital Goods in Data Markets, Part 4: Data Subsets and RESTful APIs

This is the fourth and final installment in my data markets series. I’ve previously introduced data markets and their features, showed you how to select a market and begin extracting data from it, and explored how premium dataset purchases are handled in two commercial markets. The third article also showed you a simple Python-based example of how to integrate pay-per-dataset PayPal X Embedded Payments into a data market.

This article will focus upon steps required if we were to build a commercial data market out of the previous article’s example. We will discuss micropayments for subsections of a given dataset and what some of the key resources and calls in a general purpose data market REST API might be.

Paying for data subsets via micropayments

The previous article mentioned the DevZone analysis dataset created for a separate X.com series. The first couple of dataset entries (rows) are shown below to give you a feel for each of the columns in the comma separated data. Click here to access the DevZone dataset data dump as CSV.

Date and time published Article or blog post? Title URL
7/21/2010 10:39:00 article A Brief History of Micropayments https://www.x.com/docs/DOC-2347
7/21/2010 22:03:00 article Power to the People: What You Can Do with the PayPal APIs https://www.x.com/docs/DOC-2346

In the previous article of this series the DevZone dataset was used as an example of a per-dataset purchase. Per-dataset purchases are well and good if the level of granularity you want to provide is at the entire-dataset level.

But what if in the above example you knew that you only wanted data for articles related to micropayments? The first article would be pertinent, the second one not. In that case you’d like a data market that allows you to purchase data subsets that pertain to your needs rather than only allowing you to buy entire datasets, all or nothing.

One way to provide such support would be via REST+JSON with subsets of data purchased on a per API call or database row/item access basis. I’ve written quite a bit elsewhere on X.com about REST+JSON as part of what I call the “one true web path“. Please click here to read some of my previous posts defining the path and why it is a good thing.

Once we’ve bought into a REST+JSON based data solution, we next need to figure out how to handle per API call purchases. As we discussed in the previous article, Embedded Payments allow data vendors to lower their transaction costs making micropayments financially viable. Implementing this would allow for the sale of individual data subsets, even single data rows or items.

So what would we need to add to the simple example in the previous article to enable per-row and -item data purchases? At a minimum:

  • A search interface for locating pertinent datasets (see more on the API below)
  • Once the user finds the data they want to buy, they need to be able to query it to locate any particular data subset of interest (again, see below)
  • For each query that returns data, our micropayments-enabled data market needs to either prompt the user to pay (if exploring directly) or else deduct microfunds from the user’s account
  • Once payment is made (or deferred), data subset access or download should be permitted

A key component of realizing our data subset micropayments vision is a generalized data market REST API. Let’s move to that next.

Specifying a RESTful data market API

A well designed RESTful web API should use OAuth for authentication and specify resources that may be manipulated via HTTP GET, PUT, POST, and DELETE methods. You can explore how OAuth works through related X.com resources (click here). In this article we’ll focus upon the REST API itself.

For an example, see the Twitter REST API‘s list of resources on the right side of the Twitter API Documentation page. You’ll note a large number of resources such as timeline, tweets, user information, trends, and much more that can be accessed and manipulated using the Twitter API.

What then are the resources we should provide in a data market RESTful API? For starters, we need to provide access to dataset and entry information. Imagine a SSL-secured base REST API service URL of:

https://api.example.com/version/

where version is a version number of the API we’re trying to use (for example, this might be “1” or “v1” for the first version of our data market API). Given that base URL we might specify dataset and entry related API calls such as:

  • GET https://api.example.com/version/datasets/show/id – returns JSON representation of one or more datasets’ key information (name, size, date added, number of entries, list of entries by their unique IDs, etc.) based upon id (datasets’ unique ID in the data market) and/or containing terms passed in via request parameters
  • GET https://api.example.com/version/datasets/search/id – searches for datasets similar to the one specified by request parameter id, returning results as JSON list of datasets by their unique IDs; other parameters may be useful to allow for searching by date added to the market, size of dataset, minimum number of entries, etc.
  • GET https://api.example.com/version/entries/show/id – return representation of one or more specific data entries’ key information (name, size, date added, array of key:value pairs containing entry data, etc.) based upon request parameter id (entries’ unique ID in the data market)
  • GET https://api.example.com/version/entries/search/id – searches for data entries similar to the one specified by id and/or containing terms specified in request parameters, returning results as JSON list by unique IDs

For each additional resource you wish to expose you need to provide a RESTful interface to access it. For example, besides dataset and entry related calls, we may also wish to provide datamarket level calls, e.g. GET https://api.example.com/version/datamarket/show might return key overall data market information (number of datasets, size of data stored, etc.).

For more information on RESTful API design, especially if you have SQL experience but haven’t implemented a RESTful API before, see Apigee’s “REST API design for SQL programmers” slideset (click here to access).

Click here to read the complete article on the PayPal X Developer Network including a discussion of key takeaways from this series and what we might expect to see from data markets in the future.

Infochimps Twitter influence metrics dataset API console

LinkedIn APIs: Embeddable widgets

In my last post I introduced LinkedIn’s REST APIs.  This time, I want to briefly explore using their embeddable widgets.

LinkedIn provides some simple HTML- and and JavaScript-based widgets to integrate commonly requested LinkedIn functionality into your site.  These widgets include:

  • Company Insider” – JavaScript widget that shows a visitor to one of your web pages how many people they know at a company
  • Profile” – JavaScript widget used to display LinkedIn public profiles on an arbitrary web page
  • Share on LinkedIn” – a parameterized URL allows your site visitors to share your content via LinkedIn

You have some options on how you choose to display “Company Insider” information.  You have popup as well as always-open, inline options.  Here’s an example from LinkedIn of how a popup might appear:

https://i0.wp.com/static01.linkedin.com/img/pic/pic_widget_companyinsider_popup.gif

and here’s the same information presented inline without a border:

https://i0.wp.com/static02.linkedin.com/img/pic/pic_widget_companyinsider_inline.gif

The “Profile” widget offers similar popup and inline options.  For instance, here’s a popup example:

https://i0.wp.com/static03.linkedin.com/img/pic/pic_widgets_profile_insider_popup_310x508.gif

Click here to read the complete post on the PayPal X Developer Network including additional discussion of the “Share on LinkedIn” widget and its parameters.

Selling Digital Goods in Data Markets: Part 3, Build Your Own Market

This is the third installment in my data markets series. In the first article in the series I introduced the concept of data markets and outlined the types of markets and their main features. I also discussed four of the major data market players: Factual, Freebase, Infochimps, and Windows Azure Marketplace DataMarket.

In the second article I showed you how to use the major features of data markets to select a market to use. I then illustrated locating a pertinent dataset and accessing its data for the specific example of Twitter influence metrics. I did this using Python and YQL via the ‘datamarkets.infochimps.yql.py‘ program available on the series GitHub repository.

In this article, we’re interested in how data markets enable you to access premium (read: not “free as in beer”) datasets, in some cases via a monetary purchase.

I will walk you through examples of how Factual and Infochimps enable premium dataset purchases today. I’ll then show you a simple example data market built using a Python web framework, Google App Engine, and PayPal’s Digital Goods Embedded Payments for pay-per-dataset. This should give you an idea of how a data market would integrate PayPal-based payments for premium data. I’ll also briefly discuss the notion of micropayments for discrete data items; this will be plumbed out more completely in the fourth and final article in this series coming soon.

Premium datasets and purchase options in commercial data markets

Let’s stick with the two data markets we explored most deeply last time around, Factual and Infochimps, as we consider premium dataset options.

As I mentioned in the previous article, Factual provides downloadable CSV data dumps. In the case of certain premium datasets, you must first fill out a form to request download access to the data. For example, if you select “Request Download” from Factual’s “US Point of Interest (POI) and Business Listings” dataset:

you will need to fill out this form to proceed:

As you can see from the text instructions at the top of the download form, filling out the form results in an account manager being assigned to you. Presumably you can expect some discussion with this person before receiving access to the data, at least for certain of the premium datasets.

Rather than implementing premium dataset gatekeeping via an account manager contact process, Infochimps has provided purchase links. For instance, selecting their “Twitter Census – Conversation Metrics: One year of URLs, Hashtags, Smileys usage (monthly)” dataset returns a “Purchase a data set” page:

As you can see, Infochimps enables you to purchase premium datasets using a credit card, falling back to a phone call if the default option doesn’t work. This is ok for large scale purchases such as multi-hundred dollar datasets in their entirety, though the credit card processing fees can be a bit steep for the seller and data market provider. But this breaks down when one wants to offer smaller datasets, or even per-use slices of data from a dataset, for sale. Credit card processing fees are simply not cost effective for small payments, aka micropayments.

Enter PayPal’s Embedded Payments for Digital Goods purchases.

Advantages of using Embedded Payments for Digital Goods

As PayPal describes in “Embedded Payments and Payments for Digital Goods” (click here to access the PDF):

An embedded payment is a payment that initiates a visual presentation of the Adaptive
Payments payment flow in which the sender appears to never leave your checkout or payment
page. Embedded payments make it easier for a sender to make a payment because PayPal may
allow the sender to bypass the PayPal login step.

Embedded payments make the purchase process more streamlined for customers, and that has been shown to increase conversion to sales. This is likely true for dataset purchases from markets just as it is for other digital goods.

Beyond that, however, PayPal embedded payments can also allow a data market to lower its transaction costs on smaller purchase sizes. This makes micropayments for small chunks of data financially possible, increasing profit for the market and its data providers. As the PDF above goes on to note:

PayPal provides various means of aggregating payments, which make the purchase of digital goods easier and can reduce fees through the use of micro pricing, which are special rates for lowcost goods.

Watch this embedded video of last fall’s Innovate Digital Goods conference session to see Embedded Payments in action and learn more about the benefits and implementation of them:

Click here to read the complete article on the PayPal X Developer Network including details of a PayPal-powered data market example.

Notes from the week of 2011-04-10

PayPal X Platform

Personal things

Design a site like this with WordPress.com
Get started