网上客户端协议的简单蟒蛇实现
webfinger的Python项目详细描述
WebFinger RFC 7033的简单python客户机实现。
webfinger是一种发现协议,允许您以标准化的方式查找有关人员或事物的信息。有关详细信息,请参见spec或webfinger.net。
>>> from webfinger import finger >>> wf = finger('acct:eric@konklone.com') >>> wf.subject acct:eric@konklone.com >>> wf.avatar https://secure.gravatar.com/avatar/ac3399caecce27cb19d381f61124539e.jpg?s=400 >>> wf.profile https://konklone.com >>> wf.properties.get('http://schema.org/name') Eric Mill
手指
- 手指(资源,rel=无)
finger是实例化webfingerclient对象并发出请求的方便方法。resource参数是您正在查询的资源的uri。可选的rel参数可以是字符串,也可以是将响应限制为特定关系的字符串列表。webfinger服务器not需要服从rel参数,因此您应该相应地处理响应。
webfingerclient支持其他选项,因此请检查finger是否满足您的需要。
WebFinger客户端
- webfingerclient(超时=无,正式=假)
- 实例化客户端对象。可选的timeout参数指定http请求超时。可选的officer参数是一个布尔值,用于确定客户端是否将使用unofficial endpoints。
- 手指(资源,主机=无,rel=无,原始=假)
客户端{em1}$finger方法准备并执行webfinger请求。resource和rel与独立的finger方法上的参数相同。host仅当要连接到资源参数中主机以外的主机时才应指定。否则,此方法将从resource参数提取主机。raw是一个布尔值,用于确定方法返回的是webfingerresponse对象还是作为dict返回的原始jrd响应。
如果将host参数传递给此方法,则会忽略非官方端点。你要的是一个特别的主持人,所以我不同意谁的观点?
WebFinger响应
webfinger响应对象提供方便的属性,以便轻松访问和原始jrd响应。阅读spec for specifics of the JRD response。
属性
- 主题
- 响应jrd描述的事物的uri。
- 别名
- 标识主题的附加uri列表。
- 属性
- 提供有关主题信息的uri和值的指令。
- 链接
- 定义主题外部资源的dict列表。
- jrd
- 原始jrd响应的指令。
方法
- rel(关系,attr='ref')
一种方便的方法,提供对链接的基本访问。relation参数是所需链接的uri。attr参数是匹配relation的链接返回值的键。返回一个字符串,如果^ {EM1} $关系EEE>和^ {EM1}$TAFE
存在,否则^ {EM1}$$NOME 。 >>> wf.rel('http://webfinger.net/rel/avatar') https://secure.gravatar.com/avatar/ac3399caecce27cb19d381f61124539e.jpg?s=400
响应jrd可能有多个具有相同关系uri的条目。rel方法将选择第一个,因为order意味着优先级。如果需要查看所有值,则必须遍历links属性并自己将其拉出。
>>> rel = 'http://webfinger.net/rel/avatar' >>> [l.get('href') for l in rel.links if l.get('rel') == rel]
如果attr为none,则将返回链接的完整dict。
关系属性
响应对象的属性支持以下常见链接关系类型:
- 活动流:http://activitystrea.ms/spec/1.0
- 化身:http://webfinger.net/rel/avatar
- 名片:http://microformats.org/profile/hcard
- 打开ID:http://specs.openid.net/auth/2.0/provider
- 开放社交:http://ns.opensocial.org/2008/opensocial/activitystreams
- 便携式触点:http://portablecontacts.net/spec/1.0
- 剖面图:http://webfinger.net/rel/profile-page
- 网络拳头:http://webfist.org/spec/rel
- xfn:http://gmpg.org/xfn/11
示例:
>>> wf.avatar https://secure.gravatar.com/avatar/ac3399caecce27cb19d381f61124539e.jpg?s=400
非官方l端点
虽然facebook和twitter并不正式支持webfinger,但是webfinger-unofficial project提供了基本主题信息的代理。默认情况下,python webfinger将尝试为facebook.com和twitter.com资源域使用unoffice端点。可以通过将true传递给officer参数来禁用此行为:
>>> wf = finger('acct:konklone@twitter.com', official=True)