Tag: 谷歌API

问题重新:Gmail边栏小工具弃用

我们在https://developers.google.com/gmail/sidebar_gadgets上偶然发现了Gmail边栏小工具的弃用通知,其中声明 警告:Gmail边栏小工具现在已被弃用,不久将不再受支持。 这个声明和网站是不清楚的,我们无法find具体的date和影响的任何贬低通知。 此外,由于通过URL实验室添加小工具已被弃用,因此大多数页面都无法使用。 但是,由于Google Apps 50K联系人数量限制,我们通过市场部署了一款对我们的Google Apps运营至关重要的小工具。 我已经向GWSC提交了一张有以下问题的票据,但是我想我也会在这里提及它,因为我们有些惊讶于偶然发现了这个通知,并且没有通过我们find的任何渠道进行共享。 也许我错过了? 这sidebar_gadget弃用是否适用于市场的应用程序,如美国国际开发署写和正在使用? 请您指出官方弃用通知,尤其是影响的date? 什么将取代侧边栏小工具,因为这是我们日常使用Google Apps不可分割的一部分? 任何意见的赞赏,因为我特别担心,谷歌没有预料到人们在市场应用程序侧边栏做事情,当他们通过URL实验室拿走了小工具,他们认为他们杀了使用这些小工具的唯一途径。 希望我很担心,市场上的应用程序是好的,但… 问候,KAM

如何开源使用API​​密钥的应用程序

对于一个宠物项目,我开发了一个桌面应用程序,它需要来自几个不同的Web服务的API密钥。 我一直在努力准备这个应用程序,使其成为开源的,并且解决了用这些密钥做什么的问题。 问题是这样的:我的理解是,这些API密钥对任何使用该应用程序或查看/修改源代码的人都是不可见的。 从Web服务的最后,这些API密钥用于标识访问其API的应用程序,并根据需要允许/阻止使用。 在TOS的大部分接收这些密钥的地方,实际上明确指出密钥不能与世界共享。 目前,我所有的密钥都是硬编码的,但在处理开放源码应用中的私钥情况方面,我处于一个僵局: – 如果密钥保持硬编码,那么只要我的源代码被公开就可以看到。 – 我不能真的用代码分配中的键来省略源文件,因为那样它就不能编译。 这在技术上解决了这个问题,但引入了一个新的,不可接受的。 – 如果我将按键closures到一个.ini或其他configuration文件,并没有包含在我的公共代码库中的文件,它仍然必须与我的应用程序的二进制文件分发,以便应用程序的function,所以我的密钥将在应用程序分配中显示,而不是源分配。 不是一个改进。 我试图在这个INI文件上使用的任何encryption体操将增加任何人试图修改我的代码的复杂性。 因此,关于我的代码库(目前在Mercurial中用于版本控制),pipe理所有事情的最好方法是什么,以便代码可以公开,但我的密钥保持私有?

同一资源的不同RESTful表示

我的应用程序在/foo有一个资源。 通常情况下,它是这样的HTTP响应负载: {"a": "some text", "b": "some text", "c": "some text", "d": "some text"} 客户端并不总是需要这个对象的全部四个成员。 什么是RESTfully语义的方式让客户告诉服务器在表示中需要什么? 如果它想要: {"a": "some text", "b": "some text", "d": "some text"} 它应该如何GET它? 一些可能性(如果我误解了REST,我正在寻找更正): GET /foo?sections=a,b,d 。 查询string(毕竟称为查询string)似乎意味着“查找与此条件匹配的资源并告诉我有关它们”,而不是“根据此自定义向我表示此资源”。 GET /foo/a+b+d我最喜欢的是REST语义不包含这个问题 ,因为它的简单性。 打破URI不透明,违反HATEOAS。 似乎打破资源(URI的唯一含义是识别一个资源)和表示之间的区别。 但这是值得商榷的,因为它与代表/widget/<id>资源的可视列表/widget/<id>一致,这是我从来没有遇到的问题。 松开我的约束,对GET /foo/a等做出响应,并让客户端对每个/foo组件的请求进行请求。 如果/foo有数百个组件,而客户端需要100个组件,那么开销就会增加,这可能会变成一场噩梦。 如果我想支持/foo的HTML表示,我必须使用Ajax,如果我只想要一个可以被抓取,由极简主义浏览器渲染的HTML页面,这是有问题的。 为了维护HATEOAS,它还需要指向其他表示中存在的那些“子资源”的链接,可能在/foo : {"a": {"url": "/foo/a", "content": "some text"}, …} GET /foo , Content-Type: […]

基于REST API的HTTP基本身份validation

我是Restful API的概念的新手。 我正在为在线商店devise一个宁静的api。 我没有正确理解ssl基本httpauthentication的概念。 这是否意味着,对于每一个请求,用户将不得不再次input他/她的用户名和密码? 有人可以请详细解释它是如何运作的,以及如何使用它? 提前致谢。

Python – Facebook的API – 需要一个工作的例子

好的,所以我google了,我已经find线程在这里stackoverflow,我已经检查了官方的Facebook维基和..什么不.. 我现在希望你们中的一个人坐在一个用于Python的Facebook API示例代码上。 这是我到目前为止,我所得到的是“无效签名”通过PyFacebook似乎是一个死的项目: from facebook import Facebook api_key = '123456789______' secret = '<proper secret key>' OTK = 'XXXXX' # <– You get this from: https://www.facebook.com/code_gen.php?v=1.0&api_key=123456789______ long_term_key = None fb = Facebook(api_key, secret) def generate_session_from_onetime_code(fb, code): fb.auth_token = code return fb.auth.getSession() if not long_term_key: long_term_key = generate_session_from_onetime_code(fb, OTK)['session_key'] print 'Replace None with this in the […]

用REST分割头发:标准的JSON REST API是否违反HATEOAS?

今天早上我正在读REST,并且遇到了HATEOAS原理(“超媒体作为应用程序状态的引擎”) 。 引用REST Wikipedia页面 : 客户端只能通过服务器在超媒体中dynamic识别的动作(例如通过超文本中的超链接)进行状态转换。 除了对应用程序的简单固定入口点以外,客户端不会假定任何特定的操作将可用于之前从服务器接收到的表示中描述的任何特定资源。 而Roy Fielding的博客 : …如果应用程序状态(因此API)的引擎没有被超文本驱动,那么它不能是RESTful,也不能是REST API。 期。 我读到这样的:客户端可能只需要根据服务器的响应主体(超文本)提供的动作来请求状态改变。 在HTML世界中,这是非常有意义的。 客户端应该只能根据通过超文本(HTML)提供给他们的链接来请求状态改变(新的动作/页面)。 当资源以其他方式表示时 – 例如JSON,XML,YAML等。这一点并不明显。 我们来看一个“REST”JSON API的例子: 我通过发送一个POST请求来创build一个新的资源(例如一个新的注释) /comments.json? # with params… 服务器回应: # Headers HTTP/1.1 201 Created Location: http://example.com/comments/3 Content-Type: application/json; charset=utf-8 … Etc. # Body {"id":3,"name":"Bodacious","body":"An awesome comment","post_id":"1"} 我知道现在可以通过标头中返回的URI访问此评论: http : //example.com/comments/3.json 当我访问http://example.com/comments/3.json时,我看到: {"id":3,"name":"Bodacious","body":"An awesome comment","post_id":"1"} 假设API的文档告诉我可以通过向相同的URI发送一个DELETE请求来删除这个注释。 这在“REST”API中相当普遍。 然而: […]

框架VS. API

现在,这可能是一个愚蠢的问题,但有时框架和API的术语可以互换使用。 我看到的方式是,框架是一个更通用的东西,包含许多API,可以用于各种编程任务(例如,.NET框架)。API更小,更专业化(例如, Facebook API。)任何人都想分享他们对这个问题的见解吗? 举个例子,微软称.NET框架,而Sun把它们称为平台……所以,如何称之为“图书馆藏”也是商业/营销决策。

CSRF攻击是否适用于API?

特别是,我正在编写一个Django RESTful API来支持iOS应用程序,并且每当我编写处理POST请求的方法时,我都会继续运行在Django的CSRF保护中。 我的理解是,由iOSpipe理的cookie不会被应用程序共享,这意味着我的会话cookie是安全的,没有其他应用程序可以骑在它们上面。 这是真的? 如果是这样,我可以将我所有的API函数都标记为CSRF-exempt吗?

如何为PHP文件设置UTF-8编码

我有一个PHP脚本叫: http://cyber-flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: CzÄ Ĺ Ä mowy: rzeczownik Przypadek: dopeĹ niacz Rodzaj: ĹźeĹ ski Liczba: mnoga 正如你可以看到,在适当的字符的地方有这样的“灌木丛”。 我想要做的是以某种方式显示,以便人们在浏览器中看到正确的UTF-8字符。 你可以将它封装在HMTL标签中,并设置为元UTF-8编码,但是由于从这个脚本接收到的数据将被进一步处理,我不想使用任何HTML标签,它应该只是纯文本结果集。 那么有没有办法告诉浏览器,这个文件是不使用元标签的UTF-8? PS。 文件以UTF-8编码,如果我手动将浏览器中的字符集编码更改为UTF-8,则显示正常,但是我想要实现的是人们不需要这样做。

从Guzzle中捕捉exception

我试图从我正在开发的API上运行的一组testing中捕获exception,并使用Guzzle来使用API​​方法。 我已经在try / catch块中包装了testing,但仍然抛出未处理的exception错误。 如他们的文档中所述添加一个事件监听器似乎没有任何作用。 我需要能够检索HTTP代码为500,401,400的响应,实际上不是200的响应,因为如果系统不工作,系统将根据通话结果设置最合适的代码。 当前的代码示例 foreach($tests as $test){ $client = new Client($api_url); $client->getEventDispatcher()->addListener('request.error', function(Event $event) { if ($event['response']->getStatusCode() == 401) { $newResponse = new Response($event['response']->getStatusCode()); $event['response'] = $newResponse; $event->stopPropagation(); } }); try { $client->setDefaultOption('query', $query_string); $request = $client->get($api_version . $test['method'], array(), isset($test['query'])?$test['query']:array()); // Do something with Guzzle. $response = $request->send(); displayTest($request, $response); } […]