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.Feed
1.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 及更高版本的下载文件夹中吗,如果不能,请告诉我另一种方式,以免违反任何规则。
非常感谢您的关注!