我一直在研究Google Calendar API和有关身份验证的文档(http://code.google.com/apis/calendar/v3/using.html#auth).这里提到的用例似乎是编写一个访问用户日历的应用程序.但是,我正在编写一个网页,该网页将访问网站所有者的日历并仅显示该日历的信息.因此,我不希望用户输入他们的Google帐户信息,这是oAuth想要做的事情.
基本上,我正在寻找一种方法来访问单个私有Google日历,并通过将凭据直接传递给服务来对其进行身份验证.
这里有一个类似的问题:如何使用OAuth与Google日历仅访问一个日历? 这似乎表明海报最初是直接传递凭证.此功能是否仍然可用?你如何处理我描述的用例?
我在apache上运行php.我已经下载了我认为正确的xdebug编译的dll for php version 5.4 64 bit windows.我启用了线程安全,它使用的是VC9.我已经下载了dll并将其放在这里:
C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
Run Code Online (Sandbox Code Playgroud)
这是我在php.ini中的内容:
[xdebug]
zend_extension = "C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll"
Run Code Online (Sandbox Code Playgroud)
当我启动Apache时,我收到此错误:
[Wed Apr 04 17:01:56 2012] [notice] Parent: Received restart signal -- Restarting the server.
Failed loading C:\php5\extras\php_xdebug-2.2.0RC1-5.4-vc9-x86_64.dll
hild process is ending.
[Wed Apr 04 17:01:56 2012] [notice] Apache/2.2.22 (Win32) PHP/5.4.0 configured -- resuming normal operations
[Wed Apr 04 17:01:56 2012] [notice] Server built: Jan 28 2012 11:16:39
[Wed Apr 04 17:01:56 2012] [notice] Parent: Created child process 2120
[Wed Apr 04 17:01:57 2012] [notice] Child …Run Code Online (Sandbox Code Playgroud) 我想要做的是在javascript路径的末尾添加一个查询字符串,以便每当我的应用程序更新到新版本时,都会下载javascript.但是,只要查询字符串相同,我希望它继续使用缓存版本而不执行http请求来检查脚本是否已更改.
我在PHP中完成此操作的方法是从CVS标记中读取.当我构建HTML输出时,我读取CVS标记并使用它附加到javascript路径的末尾,以便它创建一个如下所示的脚本标记:
<script src="javascript/messages/shipments.js?TPRSAPPS-DEV2_090828145712237-BRANCH" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
只要应用程序没有更改,标记将保持不变,因此查询字符串也将保持不变.浏览器应该缓存JS并且根本不做网络请求,因为过期日期是远期的.每次更新应用程序时,该查询字符串都将更改,浏览器应下载该查询字符串.
这在IE8中很有用.我的问题是Firefox.Firefox缓存文件,但下次加载页面时,Firebug会显示304响应,表明它仍然对该文件发出网络请求,然后发现它没有更改.
所以我的问题是,当有查询字符串时,firefox是否会忽略javascript的expires头和缓存?
相关:firefox决定不缓存什么? 显然Rails做了类似的事情.但这不能回答我的问题.
以下是我回复此文件的回复:
https://appdev.prsx.net/~jhargett/PRSApps-Motorlog/javascript/menuReader.js?TPRSAPPS-DEV2_090828145712237-BRANCH-DIFFERENT
HTTP/1.1 304 Not Modified
Date: Mon, 03 Oct 2011 18:35:26 GMT
Server: Apache/2.2.3 (Red Hat)
Connection: close
Etag: "179010-3f8-49a9a74334200"
Vary: Accept-Encoding
Run Code Online (Sandbox Code Playgroud)
Firebug中的Cache选项卡说:
Last Modified Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time)
Last Fetched Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time)
Expires Fri Oct 28 2011 18:33:31 GMT-0500 (Central Daylight Time)
Data Size 345
Fetch Count 12
Device disk
Run Code Online (Sandbox Code Playgroud) 我有一个客户希望将SkyDrive用作网站的云存储.该网站不会要求网站的用户为他们的SkyDrive帐户显示他们的文件,而是网站的所有者将在SkyDrive中存储一些文件,并希望与登录到他的网站的用户共享.我的问题是,如何直接从网站的后端PHP代码向SkyDrive API发送凭据?
Live Connect上的API文档(http://msdn.microsoft.com/en-us/library/live/hh243647.aspx)似乎专注于向用户呈现登录表单以将用户的凭据发送到服务.再说一遍,这不是我想要的.该网站的用户不应该做任何事情,只能转到该页面,他们将看到从SkyDrive帐户镜像的文件.凭据应存储在服务器上,并在用户请求页面时发送.
我问了一个类似于Google Docs的问题(如何在没有oAuth身份验证的情况下连接到Google Calendar API?).该问题的答案是设置一个临时脚本来获取可以反复使用以进行身份验证的刷新令牌.我试过了,它确实有效.但是,我不确定刷新令牌的持续时间以及相同的方法是否适用于SkyDrive API.
编辑:在进行更多研究之后,Live Connect Docs(http://msdn.microsoft.com/en-us/library/live/hh826540)说:
用户提供同意后,Live Connect会为您的应用提供特殊代码或访问令牌,使您的应用可以使用他或她同意的用户信息部分.通常,此访问令牌大约需要一个小时.在此时间结束后,您的应用将无法再使用用户的信息 - 它必须要求用户再次完成登录和同意过程.要解决此问题,您可以要求用户同意wl.offline_access范围.这为您的应用程序提供了一个额外的代码,称为刷新令牌,您的应用程序可以在需要时使用它来获取新的访问令牌 - 即使在用户注销后 - 通常最长可达一年.但是,用户可以随时撤消您应用的访问权限.如果用户选择撤销对您应用的同意,则无法使用相应的访问权限或刷新令牌 - 您的应用必须再次要求用户完成登录和同意过程.
因此,看起来刷新令牌持续一年.这意味着我可以安装一些东西来获取刷新令牌,存储它,并在每个页面请求上使用刷新令牌获取访问令牌并显示数据.但是,每年一次,我必须更新此客户端的刷新令牌并存储它.这听起来是对的,这是最好的方法吗?
我有一个大的元素显示在屏幕上,我希望能够放在一个较小的放置目标上.因此,我想减小可拖动克隆的大小以匹配放置目标的大小.我觉得动画这个很好看.在拖动时,我似乎无法让较小的克隆围绕光标居中.有任何想法吗?这是我试过的:http: //jsfiddle.net/a3Cj2/
$( ".draggable" ).draggable({
helper: 'clone',
start : function(event, ui){
ui.helper.animate({
width: 80,
height: 50
});
},
drag : function(event, ui){
ui.helper.offset({
left: event.pageX,
top: event.pageY
});
}
});
$("#target").droppable({
drop : function(event, ui) {
console.log('dropped');
}
});
Run Code Online (Sandbox Code Playgroud)