Open eBay Apps Jumpstart
Nemo Chen
Madhu Gupta
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
Introduction to Open
eBay Apps
“eBay has been a platform long before we had an
official Developers Program. The more people that
invest their time and energy building on top of eBay,
the better it is for every part of the eBay
Community…they're the ones that
will help eBay grow in directions we can't
even predict.”
-- Pierre Omidyar
10 years of Developers Program
heritage
•
100,000 developers strong
•
14,000 innovative buying and selling applications
•
whole businesses support eBay’s selling
supporting
eBay’s rich APIs
•
Over 125 Data Rich APIs
•
robust, open standards
•
6 billion+ calls served
/month
•
Professional Documentation
and Samples
•
SDKs for many platforms
•
PHP
•.NET
•Java
•Javascript
•Flash/Flex
•XML / SOAP
enabling integration with eBay data to solve
the most common needs of online merchants
•
market research
•product sourcing
•inventory management
•shipping solutions
•CRM tools
•marketing/merchandising
in 2009 eBay
opened
it’s doors to
apps
…allowing developers to embed apps where sellers do their business,
directly inside of MyeBay
and launched the Apps Center on eBay
Help eBay sellers grow their business
by delivering vetted business management and productivity tools
through a trusted , seamless experience on eBay.com
Reduce eBay Seller Tools product
delivery costs via 3rd party developers to build tools for the non-core and niche selling features, while eBay focuses on building core selling capabilities.
Create monetization opportunities for 3rd party developers via access to
customers, simple integration, and handle key operational issues like
subscriptions/billing.
3P developers
eBay Sellers
the Open eBay platform enables solutions to
common developer needs
Apps Center
• 2.5M+ US registered sellers
• coming soon: Motors and International sellers
• Apps Center: marketing/promotion • Featured App placements on eBay.com
Managed Billing Platform
• Integrated subscription and PayPal pre-approval • Payment method management
• Flexible subscription or usage based billing • Invoicing and payment processing
Gadget Framework
• Open Standards Gadget Specification • Native or Self Hosted options
• Event-based outbound notifications • Authentication & Single-Sign On
eBay Sellers
Customers
Monetization
how is the Apps Center doing?
after 10 months in business:
•
2.5 million active US seller audience
•
40+ applications in 8 categories
•
More than 100k subscriptions
•
1.5 subscriptions/subscriber
how can you participate ?
3
simple steps.
1.
participate in our Business Readiness Review ($75)
2.
setup your billing plans, marketing info, and app
metadata. test in the sandbox
3.
submit your application for production review (free!)
Technical Docs :
http://developer.ebay.com/products/open-ebay-apps/
Participation Guidelines:
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
we’ve used open standards
• Built on open standard
Gadgets Specification
• Gadgets Server and Repository
• Support Native (HTML/JS) and Self-Hosted (URL )
Gadgets
MyeBay Applications Tab is a
Gadget
Container
•
Your app is the
gadget
•
App is iframed
inside of
Applications Tab container page
•
Full width of the page
•
Logo and help links are rendered
by eBay
•
Deployment Descriptor
maintains app metadata (Logos,
Name, Short Description, Help
and legal content)
options for building your app:
self-hosted
•
Most common choice
•
App is completely hosted on your servers
•
Business Logic
•
Presentation
•
You host a listener – for subscription events
•eBay only knows the app entry point URL
•
Use Gadget API for:
•
Dynamic Height – resize gadget height dynamically
•Reading User Prefs
<Module>
<ModulePrefs ... />
<Content type="url" view=“canvas”
href="http://www.myapp.com/appentry.jsp" /> </Module>
anatomy of a self-hosted app – url
gadget
eBay Web ServicesOpen eBay
Framework
WS WS Other WS3P Biz Layer
3P OEPI
Listener
Application Canvas
URL Type addSubscriber/removeSubscriber3P Pres Layer
when your url application renders ..
•
Accept the ‘Render Request’ from eBay
•
HTTP Post from eBay
•
Authenticate
•
Validate eBay Signature
•
Process Request
•
Retrieve EAIS Token, UserID, Auth Token,
Token Expiration
•
Retrieve User Preferences and URL
Parameters in POST data
options for building your app:
native
•
Client side code ( HTML/JS) hosted and rendered by eBay
•
Use Gadgets API to interact with eBay and the outside world
•
Preload & MakeRequest – access your 3P backend, remote
resources, other public Web Services
•
Direct Access to eBay APIs
•
User Preferences – read user preferences from inside the gadget
•Dynamic Height – resize gadget height dynamically
•
See
http://code.google.com/apis/gadgets/docs/gs.html
for full docs
•Easy vetting process, since no code running from your
servers
<Module>
<ModulePrefs title="hello world example" /> <Content type="url" view=“canvas”
href="http://www.myapp.com/appentry.jsp" /> <Content type="html“ view=“default,wide”>
<![CDATA[ Hello, world! ]]> </Content>
anatomy of a native - html gadget
eBay Web Services WS WS Other WS3P Web Service
Application Canvas
HTML Type Gadgets APIeBay Gadget
Repository
HTML vs. URL
•
You may use either HTML or URL style gadgets anywhere.
•
HTML Gadget
• Simple HTML gadgets can be totally self contained, no need for you to host them on a server.
• Using makeRequest and other standard DHTML techniques, and remote servers, you can do anything a URL gadget can do – it is just a different programming style.
•
URL Gadget
• If you are fielding a complex multi-screen (multi-page) gadget, and are more comfortable with a traditional non-AJAX multi-page programming model.
• Perhaps you have an existing multi-page application you would like to make a gadget.
• Most gadgets.* APIs are available, especially dynamic height. APIs requiring remote calls to the gadget server (e.g. ebay-api and
makeRequest) are not due to same origin restrictions, but the non-AJAX programming style will have the application make these calls server side.
Open eBay Integration Services
•
Open eBay Identity Provider Service
•
Establishes identity of your application for
subsequent service calls
•
Open eBay Partner Interface(OEPI)
•
Defines the interface that you will implement to
listen for subscription related events
•
Open eBay Subscription Service
•
Defines a set of operations related to
OEPI: Open eBay Participant Interface
•
add Subscriber
•
Generated for every new user that subscribes to your application
•
Provides access to User Token, UserID, and Billing/Subscription
details
•
remove Subscriber
•
Generated when a user un-subscribes from your application
•
Token is revoked by eBay
•
updateSubscriber
•
Generated when the state changes for a particular subscription
•
changeSubscriptionPlan
•
Generated when a user upgrades or downgrades between your
subscriptoin plans
•
updateSubscriberCredentials
•
Generated when a user’s authentication token is revoked or
implementing an OEPI Listener
•
Optional - but currently used by all apps
•
eBay sends event to 3P application via HTTP POST
•
OEPI Listener should:
•
Authenticate
•
Validate eBay Signature
•
Process Request – decrypt Sender Token
•
Retrieve User Auth info and Subscription/Billing Info
•
Apply subscription business logic
•
Send Response XML – to set the subscription state
•
Construct addSubscriber response and return in HTTP
Response
OESS: Open eBay Subscription Service
•
addUsage
• Adds charges for a subscriber, including some nonusage types of charges, e.g. a monthly subscription fee.
•
setSubscriptionState
• Requests a change in the subscription state of a user.
•
getBillingStatements
• Retrieves all available billing statements balances for a subscriber.
(Statement HTML image available Oct. 2010)
•
getBillingRecords
• Retrieves detailed billed charges associated with a subscriber's account. The getBillingRecords call is used after you have used getBillingStatements to retrieve a statementId. (Additional transactions, unbilled, credits,
payments, available Oct. 2010)
•
getSubscribers
• Returns information about an application's subscribers.
•
getSubscriptionPlans
• Returns a list of subscription plans, including details, for the application making the request.
eBay Web Services
•
Use standard eBay Web Services to interact with
eBay
user data
.
•
User’s auth token is provided as part of
addSubscriber and render request
APIs
Finding API Shopping API Merchandising API Feedback API Trading API Large Merchant Services Best Match API Client Alerts API Platform Notifications API Research APIDocumentation Links
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
Deploying your first
app
Demo Agenda
•
Preparing a Deployment Descriptor
•
Deploying your App to Sandbox
•
Testing your App in the Sandbox
•
Using self-service features on the Developer
Portal
•
Creating your Application Catalog entry
•
Creating your Billing Plans
Deploying Your First Open eBay App
Pre-Requisites to follow along with the demo:
•
Create an account on the
Developer Portal
•
Create a sandbox user with the
Sandbox User Registration
Tool
•
Login to Sandbox
and set your user’s registration country to
Deployment Descriptor Walkthrough
•
Important Required fields
•
Application ID
•Resources
•
Links (Listener endpoint, help page …)
•
Messages (short, long desc, legal terms, policy…)
•
Permissions
•
Private vs Public
•
Implements – Subscription Feature
•
Gadget
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
3. Deploying your first Open eBay App
3-1 Deploy your Open eBay App
3-2 Add Application Directory
3-3 Create Billing Plan
3-4 Subscribe the Open eBay App
3-5 Start the Open eBay App
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
3. Deploying your first Open eBay App
3-1 Deploy your Open eBay App
3-2 Add Application Directory
3-3 Create Billing Plan
3-4 Subscribe the Open eBay App
3-5 Start the Open eBay App
App Cat Step 1:
App Cat Step 2:
App Cat Step 3:
App Cat Step 4:
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
3. Deploying your first Open eBay App
3-1 Deploy your Open eBay App
3-2 Add Application Directory
3-3 Create Billing Plan
3-4 Subscribe the Open eBay App
3-5 Start the Open eBay App
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
3. Deploying your first Open eBay App
3-1 Deploy your Open eBay App
3-2 Add Application Directory
3-3 Create Billing Plan
3-4 Subscribe the Open eBay App
Agenda
1. Introduction to Open eBay Apps
2. Open eBay Technical Overview
3. Deploying your first Open eBay App
3-1 Deploy your Open eBay App
3-2 Add Application Directory
3-3 Create Billing Plan
3-4 Subscribe the Open eBay App
Manage your applications
New Applications Tab
Manage Application
•Start Application
•Other Actions
•See details
•Rate the application
•Unsubscribe
Open Standard
58
Built on open standard,
easily deployed to
Source File on google:
http://hosting.gmodules.com/ig/gadgets/file/11159136417 8862571555/FindPopularItems.xml Subscribe it on google: http://www.google.com/ig/directory?url=hosting.gmodules .com%2Fig%2Fgadgets%2Ffile%2F1115913641788 62571555%2FFindPopularItems.xml
Documentation Links
http://developer.ebay.com/products/open-ebay-apps/
Open eBay Apps Overview
Summary of the Open eBay Apps opportunity, brief technical overview, business and technical requirements.
http://developer.ebay.com/DevZone/open-ebay-apps/Concepts/OpeneBayUGOV.html
Developing Open eBay Apps
How to develop gadgets for Open eBay Apps.
http://developer.ebay.com/DevZone/open-ebay-apps/Concepts/OpeneBayUGDev.html
Implementing Subscription and Billing
How to set up a listener for billing-related calls, how to receive calls.
http://developer.ebay.com/DevZone/open-ebay-apps/Concepts/OpeneBayUGBilling.html
Managed Platform Billing Guide
General and business information about the billing platform
http://developer.ebay.com/DevZone/open-ebay-apps/Concepts/ManagedBillingPlatformGuide.pdf
Open eBay/ Apps Center Participation Requirements
Detailed information on business rules for participation and the vetting process.
Q&A
Q&A