GMail有一个方便的窗口,可以将所有联系人导出为CSV文件.如果您执行此操作然后查看浏览器的历史记录,您会看到用于启动下载的URL类似于:
我想在Python中编写一个批处理脚本,它会每晚自动将这个CSV文件下载到我的服务器,但我无法弄清楚如何获得"tok".我已经研究过Google的OAuth,但它似乎是一个人机交互过程,而我需要在凌晨3点发生这种情况,因为所有可用的人都会睡着.
可以这样做,还是Google让我的电子邮件帐户"安全",以至于我无法通过无人参与的脚本访问它?
谢谢!Bryon M. Elliott
经过几个小时的深度痛苦之后,我终于使用本教程(尽管基于Google Analytics),更接近Google的API PHP客户端的配置和使用.
所以,现在我终于以一种看似合法且官方的方式认证自己.我的自然想法是存在一个contrib/Google_ContactsService.php,但令我惊讶的是,它无处可寻找其他32个服务类别.
我觉得自己又回头了.我有什么方法 - 合法和正式 - 获取特定用户的联系人?(大量的教程,但都过时和hacky).
编辑:我注意到有库的更新版本可在这里,但仍然没有在被发现的"通讯录"服务...... /服务/文件夹
编辑:
到目前为止我的进展.最后一行因Google的回复而失败:401. There was an error in your request.- 我想这是因为缺乏权限(我没有要求"联系人"权限).但是,如果没有"Google_ContactsService.php",我该怎么做呢?我搞不清楚了.看代码:
<?php
session_start();
/**
* Require the libaries
*/
require_once 'assets/php/Google/Google_Client.php';
require_once 'assets/php/Google/contrib/Google_AnalyticsService.php'; // from tutorial - I am supposed to get the Contacts Service, which is nowhere to find.
/**
* Set up the Google_Client
*/
$client = new Google_Client();
$client->setAccessType('online'); // default: offline
$client->setApplicationName($apiConfig['application_name']);
$client->setClientId($apiConfig['oauth2_client_id']);
$client->setClientSecret($apiConfig['oauth2_client_secret']);
$client->setRedirectUri($apiConfig['oauth2_redirect_uri']);
$client->setDeveloperKey($apiConfig['developer_key']); // …Run Code Online (Sandbox Code Playgroud) php api google-api google-contacts-api google-api-php-client
我昨天在 Play 商店发布了一个新应用程序,并已发布。但是,当我尝试下载并安装它时显示此错误:无法安装应用程序 X 再试一次,但仍然无法正常工作,请参阅解决问题的常用方法。
我曾多次尝试清除 Play 商店缓存、数据、重置手机。在我的小米红米 Note 5 上试过,也在另一个红米上试过,而不是 7。同样的错误发生了。
PS:我知道该应用程序正在运行,因为通过 Android Studio 安装它可以正常工作。但是,当上传到 Play 商店并尝试下载它时不起作用。我也看到在我生成 APK 文件后,它不起作用。我尝试使用 APK 文件进行安装,它显示:“未安装应用程序”
我正在尝试提取Gmail联系人,因此我可以自动填写Gmail中的3,000个左右的联系人.使用Google通讯录数据API,我可以获得(1)默认联系人和(2)组的列表.
但是,(1)默认联系人(http://www.google.com/m8/feeds/contacts/default/full)仅提取"我的联系人"组中的联系人,以及(2)当我查找我的组时(通过Google提供的交互式示例),"其他联系人"不是可用的组从中拉出来.
这导致了一个非常可怕的自动完成体验:我有大约100个"我的联系人"成员,而"其他联系人"中有3,000个联系人; 我只能想象其他Gmail用户大致相同.
我环顾了一下互联网,但发现并没有多少:
到目前为止,我的备份只是要求用户名/密码和抓取(或使用IMAP).那里有更好的方法吗?
我正在使用Google通讯录数据Api按照此处的文档获取所有用户联系人https://developers.google.com/google-apps/contacts/v3/
首先,我使用Google Auth使用以下代码对应用程序的用户进行身份验证
string authSubUrl = AuthSubUtil.getRequestUrl("http://localhost:62439/ContactImporter/GoogleContacts.aspx", "https://www.google.com/m8/feeds/", true, true);
Response.Redirect(authSubUrl);
Run Code Online (Sandbox Code Playgroud)
用户成功登陆后第二次使用Google提供的请求令牌重定向到GoogleContacts.aspx页面,然后尝试通过以下代码获取联系人
if (!string.IsNullOrEmpty(Request["token"]))
{
GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("cp", "alpha");
RequestSettings rs = new Google.GData.Client.RequestSettings("alpha",Request["token"]);
ContactsRequest cr = new ContactsRequest(rs);
Feed<Contact> f = cr.GetContacts();
foreach (Contact entry in f.Entries)
{
foreach (EMail email in entry.Emails)
{
Response.Write("\n" + email.Address);
}
}
}
Run Code Online (Sandbox Code Playgroud)
该代码工作大约4或5天,但现在它不工作,并得到以下错误
远程服务器返回错误:(401)未经授权.Google.GData.Client.Client.Service.Execute()at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)at Google.GData.Client.GDataGAuthRequest.Execute()at Google.GData.Client.Service.Query(Uri)在Google.GData.Client.Feed的Google.GData.Client.Service.Query(FeedQuery feedQuery)上的Google.GData.Client.Service.Query(Uri queryUri,DateTime ifModifiedSince)中的queryUri,DateTime ifModifiedSince,String etag,Int64&contentLength)
1.get_AtomFeed() at Google.GData.Client.Feed1.d__0.MoveNext()在GoogleContacts.Page_Load(Object sender,EventArgs e)的d:\ Working Folder\API的\ ContactImporter\GoogleContacts.aspx.cs:第25行,在System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp) System.Web.UI.Control上的System.Web.UI.Control.OnLoad(EventArgs e)上的System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)中的,Object o,Object …
在联系人应用程序中,有像"iCloud","yahoo","gmail"这样的组.在swift中,是否可以仅从gmail源获取联系人?
几个小时以来一直在与这个摔跤,Docs似乎很糟糕.基本上我正在尝试使用Portable Contacts API或完整的Contacts API获取对OAuth2经过身份验证的用户联系人的读取权限.谷歌最近开始允许使用OAuth2.
通过首先让用户对范围进行身份验证,我可以通过Contacts API访问用户联系人:"https://www.google.com/m8/feeds".然后我可以使用jQuery检索他们的前25个联系人(显示的代码是CoffeeScript)
$.ajax
url: "https://www.google.com/m8/feeds/contacts/default/full"
dataType: 'jsonp'
data: { access_token: token, alt: 'json-in-script' }
success: (data, status) ->
console.log "The returned data", data
Run Code Online (Sandbox Code Playgroud)
这有效,我得到JSON数据.然而,令人难以置信的差不多,唯一的接触下令谷歌提供了(据我可以告诉)是" 上次更改 "(严重跆拳道?).我需要更像"顶级朋友"或"最受欢迎"的东西.
这恰好是Google Portable Contacts API 可以做的事情(耶!).当然,我似乎无法获得成功的工作要求.
首先,我通过单击此链接让用户通过便携式联系人API进行身份验证(请注意范围:"https://www-opensocial.googleusercontent.com/api/people")
<a href="https://accounts.google.com/o/oauth2/authclient_id=457681297736.apps.googleusercontent.com&response_type=token&redirect_uri=http://localhost:3000/team&scope=https://www-opensocial.googleusercontent.com/api/people">Import Google Contacts</a>
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到一个访问令牌传回.
接下来,我尝试向便携式联系人API发送ajax请求
$.ajax
url: "https://www-opensocial.googleusercontent.com/api/people/@me/@all"
dataType: 'jsonp'
data: { access_token: token, alt: 'json-in-script' }
success: (data, status) ->
console.log "The returned data", data
Run Code Online (Sandbox Code Playgroud)
但是返回403错误
403 (The currently logged in …Run Code Online (Sandbox Code Playgroud) 从java开始通过Google API插入联系人时,我们从今天早上开始收到以下错误.请在下面找到堆栈跟踪
Exception while adding contact in google....
com.google.gdata.util.ServiceException: Internal Server Error
A temporary internal problem has occurred. Try again later.
at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:624)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
at com.google.gdata.client.Service.insert(Service.java:1409)
at com.google.gdata.client.GoogleService.insert(GoogleService.java:599)
Run Code Online (Sandbox Code Playgroud)
我们在插入线路时遇到此错误
ContactsService.insert(postUrl, contact)
Run Code Online (Sandbox Code Playgroud)
如果有人知道解决方案,请回复.
我有一个用例,我需要从 Chrome 网络选项卡检索启动器。这工作正常,除了以下情况:
在这种情况下,网络选项卡(以及调试协议上的任何扩展)显示对 iframe 内容的获取永远处于挂起状态,并且不会发出任何子负载。
将页面 URL 更改为 HTTPS,然后加载 iframe 并显示子加载。
如果我手动控制 Selenium 打开的浏览器并打开一个新选项卡,那么无论是通过 HTTP 还是 HTTPS 获取都没有关系。实际上,只有 webdriver 在加载时创建的选项卡似乎会受到这种影响。
是否有一些安全保护在起作用,或者这只是一个奇怪的错误?
webdriver google-contacts-api google-chrome-devtools selenium-chromedriver
这可能是一个愚蠢的问题,但我真的需要一个答案。
据我了解,从 Android 10 开始,推荐的方式是将文件保存到系统为其分配的应用程序的内部目录中。
在我的应用程序中,用户下载内容,然后可以(并且最经常这样做)使用 Uri 方案将其删除或导入到游戏中。当尝试以 这种方式保存文件时,我可以保存文件甚至删除它,但不能导入。保存到缓存不适合我的应用程序。有一些方法取决于设备上是否存在保存的文件。
但是,在 的帮助下DownloadManager,我可以从下载目录保存、删除和导入文件到游戏中。
问题:我可以将文件保存到 Android 11 及更高版本的下载文件夹中吗,如果不能,请告诉我另一种方式,以免违反任何规则。
非常感谢您的关注!