文档章节

OpenAPI 之 开源软件信息预览 ProjectTips

彭博
 彭博
发布于 2014/01/21 17:30
字数 593
阅读 13432
收藏 17

功能说明

    鼠标悬停在文章中用strong标签包裹的开源软件名上时,显示该软件的基本信息,让读者更好的理解提到的技术,降低文章的阅读难度。

演示

    点击去 RunJS 查看演示

    尝试把鼠标停留在 Hadoop 或者 Python 等黑体字上(此示例仅为demo,可用性有待提高)

如何实现

    (1) 主要涉及到两个API:搜索接口 search_list 和 软件详情接口 project_detail

    (2) 使用 JSONP 的数据接口,能够跨域获取数据,根据搜索接口搜索到相关软件列表

    search_list 请求解析:

http://www.oschina.net/action/openapi/search_list 参数说明
?dataType=jsonp 返回数据方式为 JSONP
catalog=project 搜索分类为软件
&callback=callback_method JSONP 回调函数
&client_id={client_id} 应用管理 应用列表中的 应用ID,见 OAuth2 认证基本流程的
&q=hadoop 搜索关键词

    返回结果:

{"searchlist":[
    {"id":19798,"title":"","type":"project","url":"http://www.oschina.net/p/spring-hadoop"},
    {"id":1051,"title":"分布式系统基础架构 Hadoop","type":"project","url":"http://www.oschina.net/p/hadoop"},
    {"id":24403,"title":"Python 的 Hadoop 扩展 Hadoopy","type":"project","url":"http://www.oschina.net/p/hadoopy"},
    {"id":25713,"title":"淘宝Hadoop作业平台 宙斯Zeus","type":"project","url":"http://www.oschina.net/p/alibaba-zeus"},
    ... // MORE
}

    (3) 通过相似性算法列出与 列表中 url 包含的唯一标识相似度最高的的软件

    (4) 如匹配到相似度 ≥0.8 的软件,使用 project_detail 接口请求对应软件

    project_detail 请求解析:

http://www.oschina.net/action/openapi/project_detail 参数说明
?dataType=jsonp 返回数据方式为 JSONP
&callback=callback_method JSONP 回调函数
&client_id={client_id} 应用管理 应用列表中的 应用ID,见OAuth2 认证基本流程的
&ident=hadoop 软件标识

    返回结果:

{
    "id":1051,
    "languages":"Java",
    "title":"Hadoop",
    "extensionTitle":"分布式系统基础架构",
    "body":"Hadoop 是一个分布式系统基础架构......",
    "url":"http://www.oschina.net/p/hadoop",
    "logo":"http://www.oschina.net/img/logo/hadoop.png",
    "document":"http://www.oschina.net/action/project/go?id=1051&p=doc",
    "homepage":"http://www.oschina.net/action/project/go?id=1051&p=home",
    "download":"http://www.oschina.net/action/project/go?id=1051&p=download",
    "recordtime":"2009-11-22 12:23:11",
    "os":"跨平台",
    "favorite":0,
    "license":"Apache"
}

    (5) 将软件信息缓存,并把详情显示出来

    (6) 源码:http://www.oschina.net/js/2013/projectTips.js

© 著作权归作者所有

共有 人打赏支持
彭博

彭博

粉丝 393
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
加载中

评论(31)

SaintIC
SaintIC

引用来自“添加软件”的评论

oauth2_authencate 搞定了
oauth2_tocken有个问题:
http://www.oschina.net/action/openapi/token?client_id=qCr4nHis3HJCscn3vBgF&client_secret=我不告诉你&grant_type=authorization_code&redirect_uri=http://我不也告诉你/test2.php&code=omRGwx&dataType=json

返回:

{
"error": "400",
"error_description": "Redirect URI mismatch."
}

(我用firefox的RestClient测试的)
请问这个是什么导致的?
s
skcesks
超小白问:怎么创建应用?应用地址 和 回调地址 怎么 填??
╭ァの修罗
╭ァの修罗
失效了
帖子列表
帖子列表
@彭博 @红薯 上面的留言我把client_secrect给泄了, 能帮我删掉那个留言么?
帖子列表
帖子列表

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

哪个password参数?这思维有点跟不上啊

这个也摸索出来了, ok , 谢谢了!
帖子列表
帖子列表

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7&portrait=20">
File name:<input type="file" name="imgfile"><br>

改为:
<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7">
File name:<input type="file" name="portrait"><br>

试试

不过那个 portrait 默认值20是什么意思?
帖子列表
帖子列表

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7&portrait=20">
File name:<input type="file" name="imgfile"><br>

改为:
<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7">
File name:<input type="file" name="portrait"><br>

试试

非常感谢, 这个问题已经按此方法解决
帖子列表
帖子列表

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

哪个password参数?这思维有点跟不上啊

亲, 对不起, 这几天一直没空弄这个问题!
刚才本来想再试一下, 但是却遇到了另一个问题:
/action/openapi/token
返回
{"error":"401","error_description":"client_secret mismatch: ghwmeecrkt5rvupyzmk7cliihjxn4ctj"}

URI是: http://www.oschina.net/action/openapi/token?client_id=qcr4nhis3hjcscn3vbgf&client_secret=ghwmeecrkt5rvupyzmk7cliihjxn4ctj&grant_type=authorization_code&redirect_uri=http://95.85.17.20/youtube/oscopenapi/test.php&code=Fxd8xg&datatype=json

code确实是:
http://www.oschina.net/action/oauth2/authorize?response_type=code&client_id=qcr4nhis3hjcscn3vbgf&state=xyz&redirect_uri=http://95.85.17.20/youtube/oscopenapi/test.php
所返回的值,

以前是可以的, 今天怎么不对了。


对了 , password指的是 http://www.oschina.net/openapi/docs/active_list 里面的 访问授权限制 这一项的password, 该怎么传值?
Yashin
Yashin

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

哪个password参数?这思维有点跟不上啊
Yashin
Yashin

引用来自“我喜欢吴佳旻”的评论

引用来自“oscfox”的评论

引用来自“我喜欢吴佳旻”的评论

还有
我不太会弄这个: http://www.oschina.net/openapi/docs/active_list

http://www.oschina.net/action/openapi/active_list?access_token=7c9456fe-999f-439f-9432-e8155cf5f8ad&dataType=json&catalog=0&user=12&pageSize=20&pageIndex=1

返回:
{

"error": "500",
"error_description": "用户验证失败"

}

怎么办?

呃。。你这里user 你确定是12?是你自己的用户ID噢

好吧,原来只能是自己,那个password参数就是说要登录是么? 还有portrait的问题也麻烦看下哦,谢谢!

<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7&portrait=20">
File name:<input type="file" name="imgfile"><br>

改为:
<form method="get" enctype="multipart/form-data" action=" http://www.oschina.net/action/openapi/portrait_update?access_token=c4fa7014-9052-4281-8f3f-3de506eba0a7">
File name:<input type="file" name="portrait"><br>

试试
开源中国 OpenAPI 上线

为了使开源中国更加自由、开放,释放各位 OSCer 的创造力,开源中国 OpenAPI 应运而生。目前该功能处于 Beta 阶段,不影响正常使用,转正式版后数据和应用依然保留。 当前 OpenAPI 基于 OAut...

oschina
2014/02/12
29.5K
146
ThinkPHP/oschina-app

开发说明 项目是基于 APICloud 的,详细的开发文档请看官网文档 UI框架使用的是的AUI 软件说明 部分功能还未开发 #3 ,感兴趣的朋友可以继续开发下去,我若有时间也会继续做的。 我自己测试过...

ThinkPHP
2015/10/15
0
0
OpenAPI 规范 3.0 版接近最终发布

“开放 API 战略” (Open API Initiativev) 发布了 OpenAPI 规范 3.0 版的预览,并规划于今年二月底发布实施草案(Implementer Draft)。 新的 OpenAPI 规范 3.0 带来了如下重大改进: 为实现...

局长
2017/02/07
3.1K
7
ThinkPHP/oschina-apicloud-app

简介 本项目是基于 APICloud 的开发的 OSChina 客户端; 由于作者是搞 PHP 的,前端技术实在很菜,所以代码拼拼凑凑的,还请大家见谅。 使用说明 由于本项目尚未开发完成,还有大量功能未实现...

ThinkPHP
2015/04/03
0
0
pyqt 学习基础 实践2 基于oschina笔记软件的初步界面

笔记软件主界面 这东西大概介绍 我想做一个基于oschina的跨平台的笔记软件(做得好就分享给大家,做的不好就自己收藏....,oschina openapi方面已经熟悉了一下,但是Qt还不是很熟悉,因为还是...

Cosven
2014/08/28
0
2

没有更多内容

加载失败,请刷新页面

加载更多

网站漏洞检测之WordPress 5.0.0 修复方案

2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录权限,以及文件...

网站安全
40分钟前
0
0
MySql 优化 group by 语句

默认情况下,Mysql 对所有 group by 的字段进行排序,如果查询包括 group by ,用户想要避免排序结果的消耗。可以指定 order by null 禁止排序。 mysql> EXPLAIN select * from sys_log gro...

嘴角轻扬30
今天
9
0
Linux分区&格式化&文件系统&LVM&扩容

硬件 磁盘由 盘片组、主轴马达、机械臂、磁头、驱动芯片和电路、接口等构成 2. 磁盘的分割 每个盘片很多同心圆分割为磁道 Trace 一组盘片的同径磁道叫做一个柱面 Cylinder 每个磁道又被分为很...

可数局部基
今天
5
0
刷leetcode第705题- 设计哈希集合

这个我可能做的不是很符合题意,虽然AC了,但是没有去用到hash函数之类的方式。同样使用了位运算来搞定这一切,简单易懂。上代码如下: typedef char MyHashSet;/** Initialize your data ...

锟斤拷烫烫烫
今天
4
0
【spring】- springmvc 工作原理

核心:前端控制器:DispatcherServlet 功能:MVC设计模式中的Controller角色,掌控全局 类图 原理 本质是将DispatcherServlet及关联的Spring上下文环境的初始化工作织入Servlet的生命周期内,...

ZeroneLove
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部