`
jiangduxi
  • 浏览: 453196 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

eBay SDK FetchTokenCall 的使用及其思考

 
阅读更多
大致需求:
 
引用
之前需求是ebay Account 和ebay Developer账户是一对一的进行绑定,然后将产生的Token直接保存至数据库中。现在需求则是需要通过FetchToken来获取产生新的token。



知识点预备
引用
查下ebay 相关文档 GetToken
Call 文档 FetchToken

实现步骤:
  • 登入进去ebay developer,找到Application settings
  • 选择 Select an environment 和 Select a key set
  • 点击Customize the eBay User Consent Form
  • 点击'Generate an RuName for Your Application'.

以上就是在ebay developer中设置



下面看看代码
public class getEbayToken {
		 private static String appID="XXXXX";
		 private static String devID="XXXXX";
		 private static String cert="XXXX";
		 private static String ruName="XXXXX";
		 private static	String serverUrl="https://api.sandbox.ebay.com/wsapi";	
		 //https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&RuName=YourRuNameHere&SessID=YourSessionIDHere
	public static void main(String[] args) throws ApiException, SdkException, Exception {
						String sessionID =getSessionID();
						getToken(sessionID);
		}

		/**
		 * 
		 * @param sessionID
		 * @throws ApiException
		 * @throws SdkException
		 * @throws Exception
		 */
	public static void getToken(String sessionID) throws ApiException, SdkException, Exception{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		FetchTokenCall call = new FetchTokenCall();
		ApiContext apiContext = new ApiContext();
		apiContext.setApiServerUrl(serverUrl);
		ApiCredential credential = new ApiCredential();
		ApiAccount account = new ApiAccount();
		account.setApplication(appID);
		account.setDeveloper(devID);
		account.setCertificate(cert);
		credential.setApiAccount(account);
		apiContext.setApiCredential(credential);
		call.setApiContext(apiContext);
		call.setSessionID(sessionID);
		call.fetchToken();
		System.out.println("ReturnToken: "+call.getReturnedToken());
		Calendar ExpirationTime = call.getHardExpirationTime();
		System.out.println("HardExpirationTime: "+sdf.format(ExpirationTime.getTime()));
	
		
	}
	
	/**
	 * 
	 * @return
	 * @throws ApiException
	 * @throws SdkException
	 * @throws Exception
	 */
	public static String getSessionID() throws ApiException, SdkException, Exception{
		ApiContext apiContext = new ApiContext();
		apiContext.setApiServerUrl(serverUrl);
		ApiCredential credential = new ApiCredential();
		ApiAccount account = new ApiAccount();
		account.setApplication(appID);
		account.setDeveloper(devID);
		account.setCertificate(cert);
		credential.setApiAccount(account);
		apiContext.setApiCredential(credential);
		GetSessionIDCall call = new GetSessionIDCall();
		call.setApiContext(apiContext);
		call.setRuName(ruName);
		String sessionID = call.getSessionID();
		return sessionID;
	}	
}

以上的代码还不能使用,看起来好像符合。但是在实际运行中,会出现以下Exception
引用

The end user has not completed Auth & Auth sign in flow

而这个exception出现就是由于sessionID通过代码获取而没有得到授权。
因此这里需要做如下处理:
在你获取到RunName和SessionID后,你必须组装
引用
https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&RuName=XXX&SessID=XXX

然后打开一个用户需要输入用户名和密码的页面,进入后点击I gree。就实现了授权,这时候你得到的sessionID就授权了。就可以通过FetchToken 得到token了。

还有一种方式是通过在ebay developer中配置得到授权的sessionID。那就是
在你产生了RunNames 后面,点击 show Details.可以看到Generate SessionID and Launch Consent Flow.点击后就到一个输入用户名和密码的页面,而这条URL中包含了RuName 和SessionID。只要用户输入正确的账户和密码,并且点击了I gree。那么URL中的SessionID也是授权了的。 用户可以复制URL的RunName 和 SessionID 来使用
0
0
分享到:
评论

相关推荐

    eBay帮助文档(eBay_SDK_v581.0 for_Java ebay_api)

    该SDK提供了丰富的类库和示例代码,旨在简化eBay API的使用,从而提升开发效率和项目质量。 首先,我们需要理解eBay API的基本概念。API(Application Programming Interface)是一组预定义的函数、协议和工具,...

    Ebay API SDK 747 完整包

    - **商品管理**:使用eBay API SDK,开发者可以自动化处理商品的生命周期,包括创建、更新、撤销和结束列表项。 - **订单处理**:获取订单详情,确认收货,处理退款,以及与买家交流,都可以通过SDK实现。 - **搜索...

    接入ebay支付的SDK

    同时,理解eBay的API文档和错误处理机制也必不可少,因为它们会指导你如何正确使用SDK以及如何调试可能出现的问题。 总之,接入eBay支付的SDK是一个强大的工具,可以帮助开发者无缝集成eBay的支付功能到自己的应用...

    ebay-sdk:用于eBay REST API的Java SDK

    < groupId>com.github.rjdavis3</ groupId> < artifactId>ebay-sdk</ artifactId> < version>1.3.1</ version></ dependency>快速开始使用刷新令牌创建SDK,然后进行示例调用:final RequestRetryConfiguration ...

    eBay Trading API JavaSDK 1113 版本

    - **samples**:示例代码目录,提供了如何调用API的实际代码实例,是学习SDK使用的好资源。 - **lib**:依赖的库文件夹,包含所有必要的JAR文件,这些库是运行SDK所必需的。 **使用步骤** 1. **导入SDK**:将lib...

    ebayAPI 

    在了解了基本的 eBay API/SDK 使用方法后,我们可以继续学习更多的 eBay API/SDK 功能,例如如何使用 eBay API 来创建商品列表、如何使用 eBay API 来进行搜索等等。 需要注意的是,eBay SDK 库是 eBay API 的主要...

    ebaysdkcore:适用于Java的eBay SDK

    适用于Java的eBay SDK 当前版本:943 玛文 将此仓库作为存储库添加到您的pom文件中 < id>ebaysdkcore-repo < url>https://raw.github.com/prestonvanloon/ebaysdkcore/mvn-repo/</ url> 然后将依赖项添加...

    ebay-sdk-1055:适用于eBay API的Java 9 SDK

    使用eBay SDK,开发者可以通过调用预定义的类和方法来访问eBay的RESTful API。这些API遵循HTTP协议,支持JSON和XML格式的数据交换。SDK封装了请求的构建、签名验证、错误处理等复杂流程,使得开发者可以更专注于...

    ebaysdk-python:适用于 Python 的 eBay API SDK

    此 SDK 是 eBay API 的编程接口。 它通过在 Find、Shopping、Merchandising & Trading API 中标准化调用、响应处理、错误处理和调试来简化开发并缩短开发时间。 快速示例: import datetime from ebaysdk....

    Laravel开发-laravel-ebay

    2. **服务容器绑定**:Laravel的服务容器被用来管理依赖关系,此包将eBay SDK服务注册到容器中,使得开发者可以通过依赖注入的方式轻松获取和使用。 3. **命令行工具**:可能提供了Artisan命令,允许开发者通过...

    \"Hadoop在ebay中的使用历程\"分享总结

    《Hadoop在eBay中的使用历程》是一篇深入探讨大数据处理技术如何在电子商务巨头eBay中发挥关键作用的文章。文章作者通过分享eBay在使用Hadoop进行数据处理和分析的实践经验,揭示了这一开源框架在实际业务场景中的...

    eBAY教程eBAY教程

    《eBAY教程详解》 eBAY,作为全球最大的在线拍卖及购物网站之一,吸引了无数卖家和买家参与其中。本教程将全方位地解析eBAY平台的操作与策略,帮助您从新手快速成长为精通eBAY交易的专业人士。 一、eBAY注册与认证...

    eBay 入门 eBay 入门eBay 入门

    - **版权与商标法**:尊重知识产权,不得未经授权使用他人版权或商标。 - **隐私保护**:遵守数据保护法规,妥善处理客户个人信息。 - **税务责任**:了解并履行所在地区的税收义务,确保业务合法经营。 ### 5. ...

    ebay-oauth-python-client:Python OAuth SDK:获取eBay公共API的OAuth令牌

    "ebay-oauth-python-client"是一个针对eBay API的Python OAuth SDK,它简化了OAuth认证流程,包括获取和管理OAuth令牌,以便开发者安全地调用eBay的REST API。这个库对于想要利用eBay公开数据或服务的Python开发者来...

    Ebay 克隆源码 php版本

    这个源码可以用于创建类似eBay的在线市场,允许用户进行商品拍卖、购买和销售。 【描述】"Ebay,克隆源码,测试可以用,php代码写"说明了这个源码已经过测试,可正常运行。使用PHP编写意味着它依赖于PHP语言,这是一...

    ebay eBay简化收费结构

    eBay作为全球知名的在线拍卖与购物网站,自成立以来便在全球范围内拥有庞大的用户基础和广泛的市场影响力。eBay的收费结构一直是其商业模式的重要组成部分,它直接关系到卖家的成本和收益,同时也影响着买家的购物...

    Laravel开发-ebay

    最后,考虑到项目的可维护性和扩展性,项目可能遵循了良好的代码组织和命名规范,使用了Composer进行依赖管理,并且包含了详细的文档或README文件,解释如何安装、配置和使用这个Laravel-eBay集成包。 总的来说,...

    Ebay的架构发展

    在具体技术实现上,Ebay广泛使用了开源技术栈,例如使用Linux操作系统、MySQL数据库、Memcached缓存技术以及Apache Web服务器等。通过这些成熟的开源技术,Ebay在保证系统稳定性和性能的同时,也大幅度降低了成本。 ...

    ebay ppt.rar

    这份名为"eBay ppt.rar"的压缩包文件,很可能是关于eBay平台的业务分析、运营策略或是使用教程的PPT演示文稿。虽然具体内容无法直接查看,但从标签"源码"和"工具"我们可以推测,可能涉及到eBay的API使用、自建工具或...

    eBay架构

    数据库层面,eBay使用了分布式数据库技术,如MySQL集群和NoSQL数据库(如MongoDB),以应对大数据量和高并发的挑战。数据分区和复制策略被广泛应用,以保证数据的一致性和可用性。 在缓存层,eBay利用高性能的缓存...

Global site tag (gtag.js) - Google Analytics