小编pin*_*yid的帖子

如何在没有用户干预的情况下授权应用程序(Web或已安装)?

假设我有一个需要在后台服务中访问Drive文件的Web应用程序.它将拥有自己正在访问的文件,或者在所有者共享文档的Google帐户中运行.

我知道我的应用程序需要一个刷新令牌,但我不想编写代码来获取它,因为我只会做一次.

NB.这不是使用服务帐户.该应用将在传统的Google帐户下运行.在某些情况下,服务帐户是一种有效的方法.但是,使用Oauth Playground模拟应用程序的技术可以节省大量的冗余工作,并适用于不支持与服务帐户共享的任何API.

google-api google-drive-api google-oauth gmail-api

62
推荐指数
2
解决办法
3万
查看次数

如何在本地存储中保存和还原File对象

我有一个HTML5/javscript应用程序使用

<input type="file" accept="image/*;capture=camera" onchange="gotPhoto(this)">
Run Code Online (Sandbox Code Playgroud)

捕捉相机图像.由于我的应用程序希望脱机运行,如何将文件(https://developer.mozilla.org/en-US/docs/Web/API/File)对象保存在本地存储中,以便以后可以检索对于ajax上传?

我从使用中抓取文件对象...

function gotPhoto(element) { 
     var file = element.files[0];
     //I want to save 'file' to local storage here :-(
}
Run Code Online (Sandbox Code Playgroud)

我可以对对象进行Stringify并保存,但是当我恢复它时,它不再被识别为File对象,因此不能用于获取文件内容.

我有一种感觉它无法做到,但我愿意接受建议.

fwiw我的工作是在商店时读取文件内容并将全部内容保存到本地存储.这可以工作,但很快消耗本地存储,因为每个文件是1MB加上照片.

javascript html5 local-storage

39
推荐指数
3
解决办法
5万
查看次数

是否可以转储和恢复window.angular以创建可恢复的快照

我的应用程序需要UX中的复杂步骤才能到达其中的一些状态.这使得开发/测试周期非常麻烦,因为简单的布局更改必须在视觉上验证各种状态.

所以,我正在考虑以这样的方式获取正在运行的应用程序的转储/快照(即window.angular,或者也许是$ rootscope)的实用性,我可以从该快照快速恢复,运行$ rootscope. digest()和et voila.

有关如何实现这一目标的任何建议?

我不是在寻找恢复的快照来实现功能,例如它不需要有活跃的观察者或广播订阅.它只需要忠实地呈现视觉检查的视图.

- 编辑 -

我开始认为这不可能做到.

我已经意识到,从现在开始我的所有Angular项目都将有一个名为VmStateService的服务,基本上,影响渲染视图的每个VM数据项都必须存在于这个单一服务中,控制器.这样我只有一个干净的对象(它没有功能),我可以转储到字符串,或保存到本地存储,并恢复以创建我想要测试的任何视图.

我想不幸的是,每个人都通过做$ scope.foo ="bar"来学习AngularJS,然后花费他们职业生涯的剩余部分来实现创造的混乱.

angularjs

28
推荐指数
1
解决办法
696
查看次数

为什么excludeFromRecents删除所有活动?

我的应用程序有两个入口点(MainActivity和FromNotificationActivity).

我希望MainActivity出现在最近的任务中,但不是FromNotificationActivity)

如果我做的话,清单中没有宣布任何内容......

  • 主要活动
  • 背部
  • FromNotificationActivity
  • 背部

...我发现在最近的任务中列出了FromNotificationActivity

如果我android:excludeFromRecents="true"在清单中添加 FromNotificationActivity并重复相同的序列,我在最近的列表中找不到任何内容.

我必须调用什么咒语,以便在上面的步骤序列之后,我在最近的列表中获得MainActivity.

android android-intent

26
推荐指数
2
解决办法
1万
查看次数

量角器/茉莉花测试抛出"UnknownError:未知错误:超出最大调用堆栈大小"

我有一个测试,每次运行它,抛出" UnknownError:未知错误:超出最大调用堆栈大小. "

此测试在我的一项服务中调用了一种写入Google云端硬盘的方法.

失败的测试是使用"ui"调用我的doDrive函数,这意味着更新Drive项.如果我更改单个字符"ui" - >"ni",意味着创建一个新的Drive项目,测试工作.被测代码在正常使用中工作正常.

it('should update a file', function() {
browser.executeAsyncScript(function(callback) {
    // get service
    var service=angular.element(document.getElementById('ngapp')).injector().get('DriveQ')
    // generate a title
    var title = 'title of file';
    // call doDrive to create a new file
    service.doDrive({t:'ui',id:'0B6B-RNrxsCu2Sll7JZTYy2aDA', item:{title:title}})
        .then(function (resp){
                    resp.originalTitle=title;
                    callback(resp)
            });
}).then(function(resp) {
    expect(resp.title).toEqual(resp.originalTitle);
});
});
Run Code Online (Sandbox Code Playgroud)

我直接使用chrome webdriver,我也有 browser.ignoreSynchronization = true;

browser-automation jasmine selenium-webdriver protractor chrome-web-driver

18
推荐指数
1
解决办法
4340
查看次数

插入时的403速率限制有时会成功

我在一个循环中插入100个文件.对于这个测试,我有DISABLED退避并重试,所以如果插入失败了403,我忽略它并继续下一个文件.在100个文件中,我得到63 403个速率限制例外.

但是,在检查Drive时,在63次故障中,3次实际成功,即.该文件是在驱动器上创建的.如果我做了通常的退避并重试,我最终会重复插入.这证实了我在启用退避重试时看到的行为,即.从我的100个文件测试中,我一直看到3-4次重复插入.

它闻起来像API端点服务器和Drive存储服务器之间存在异步连接,这会导致非确定性结果,尤其是在高容量写入时.

因为这意味着我不能依靠"403速率限制"来限制插入,我需要知道什么是安全插入速率,以免触发这些定时错误.

运行下面的代码,给出...

Summary...
File insert attempts (a)       = 100
rate limit errors (b)          = 31
expected number of files (a-b) = 69
Actual number of files         = 73 
Run Code Online (Sandbox Code Playgroud)

码...

package com.cnw.test.servlets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.model.ChildList;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.File.Labels;
import com.google.api.services.drive.model.ParentReference;

import couk.cleverthinking.cnw.oauth.CredentialMediatorB;
import couk.cleverthinking.cnw.oauth.CredentialMediatorB.InvalidClientSecretsException;

@SuppressWarnings("serial")
    /**
     * 
     * AppEngine servlet to …
Run Code Online (Sandbox Code Playgroud)

google-drive-api

17
推荐指数
1
解决办法
2163
查看次数

如何在devserver上使用Oauth测试Cloud Endpoints

我的应用程序使用Oauthed Cloud Endpoints,在生产中运行良好.

我的问题是在本地devserver上,我的用户用户总是被设置为example@example.com,即使我已经通过了通常的身份验证,访问代码等等并且拥有一个有效的authed用户.

我得到那个example@example.com在oauth工作正常之前测试oauth端点是有用的,但是由于我的应用程序工作,我宁愿在那里看到实际的用户.

具体来说,我的端点方法是

@ApiMethod(name = "insertEmp"), etc
public Emp insertEmp(User user, Emp emp) {
      System.out.println(user.getEmail());  // (A) log "appengine" email
      System.out.println(OAuthServiceFactory.getOAuthService().getCurrentUser().getEmail(); // (B) log authed email

       ...
Run Code Online (Sandbox Code Playgroud)

部署后,一切正常,(A)和(B)都记录经过身份验证的用户(my.email@gmail.com).

在我的本地devserver上进行测试时,(A)总是记录"example@example.com",即使我已经完成了Oauth序列并拥有一个有效的,经过身份验证的用户,并且(B)记录了my.email@gmail.com.所以我可以进行高保真测试,我需要用户成为真正认证的用户.

所以简单来说,我如何让(A)和(B)相同?

google-app-engine google-cloud-endpoints

13
推荐指数
1
解决办法
2650
查看次数

如何在Google云端硬盘中搜索子文件夹和子子文件夹?

这是一个常见问题.

情景是: -

folderA____ folderA1____folderA1a
       \____folderA2____folderA2a
                    \___folderA2b
Run Code Online (Sandbox Code Playgroud)

...问题是如何列出根目录下所有文件夹中的所有文件folderA.

google-drive-api

13
推荐指数
2
解决办法
8278
查看次数

导致"Google Maps API服务器拒绝了您的请求的原因.此API项目发现内部错误."?

这是使用Static Maps API.

我有一个带有3个img标签的网页,每个标签都是对静态地图API的调用,(当然这不是真正的api密钥).

3个标签是相同的,除了缩放,三个图像为10,13和16.

API密钥来自启用了静态地图API的项目,并且已配置并启用了计费.

我总共发出了60个请求(这是一个全新的开发项目,所以我刚刚开始).

我所看到的是,有时会显示所有三个地图.在其他时候,一个(从三个中随机)地图失败了

403"Google Maps API服务器拒绝了您的请求.此API项目发现内部错误."

因此,如果我刷新页面5次,即15次请求,我会得到大约4次失败和11次成功.

那么为什么谷歌地图随机拒绝这个403的一些请求呢?

google-maps google-maps-api-3

12
推荐指数
1
解决办法
3万
查看次数

Chrome devtools如何开放以改变行为?

在我的JavaScript中,我实现了一个隐藏标题栏的功能,该功能由scrollEvent触发。因此,当我向下滚动时,标题栏被隐藏。当我开始向上滚动时,它就会显示出来。可以将其视为与大多数移动浏览器使用搜索栏产生的相似效果。

事情就是这样……在打开devtools的情况下,它工作得很好。如果我关闭devtools,则效果不再起作用。向下滚动时,标题栏仍然可见。如果我重新打开devtools(ctrl-shift-j),效果将再次起作用。我在单独的窗口中运行devtools,因此它的存在不会影响我的应用程序的窗口尺寸。

有人知道Chrome devtools的存在对Javascript或呈现行为有什么影响吗?

注意,对于任何想念我问题要点的速读读者,我并不是要寻求解决所遇到问题的方法。我只是在问我问题的答案。

编辑:我现在发现在前台vs背景中使用devconsole也很重要。将控制台放在前台时,它可以在后台运行,而在后台则失败。在https://ibb.co/4M75sPQ上查看动画gif

javascript google-chrome google-chrome-devtools

11
推荐指数
1
解决办法
277
查看次数