我有一个在后台运行的线程,当某些东西被唤醒时它会睡眠并从数据库中提取数据.我使用谷歌应用程序使用SmtpClient发送电子邮件(下面的代码).
我想知道是否有什么我知道的?我计划一次只发送一封电子邮件(注册或忘记密码电子邮件).我有点担心会发生一些事情,比如无效的电子邮件锁定线程,因为我没有设置超时或者谷歌应用程序可能正在完成并导致应用程序爆炸.我应该注意什么?我应该问我应该如何测试?
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential(fromAddr, pass),
EnableSsl = true
};
MailMessage mail = new MailMessage(fromAddr, toAddr, subject, body);
mail.IsBodyHtml = true;
client.Send(mail);
Run Code Online (Sandbox Code Playgroud) 我们正在寻找一个CRM Web应用程序,到目前为止salesforce.com/force.com似乎是唯一允许您直接在其平台上构建应用程序的应用程序.但是我想知道gmail/google应用程序是否在他们的平台上提供相同的自由.
到目前为止,我们发现firefox扩展"正是"我们正在寻找的东西.您可以查看 http://rapportive.com/.如您所见,联系人详细信息直接显示在gmail界面中.唯一的问题是,如果我们想要更复杂的功能,如果gmail更改其界面,扩展可能会变得不稳定,所以我想知道是否可以直接在gmail平台上构建功能.基本上我们希望使用其他功能"升级"gmail应用程序(例如,根据电子邮件内容自动回复,联系详细信息视图,如rapportive.com扩展名等.
新版本Drive SDK对于经过身份验证的用户非常有用.是否可以使用Drive SDKGoogle Apps管理员权限模拟其他域用户?
doclist API可以做到这一点,但是用这个工具管理和复制文件(pdf,jpg)是不可能的.
我正在使用Java代码:
credential_origine = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[email from console api]")
.setServiceAccountScopes(DriveScopes.DRIVE)
.setServiceAccountUser("user@domain.com")
.setServiceAccountPrivateKeyFromP12File(new File("key.p12")).build();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试为user@domain.com检索数据时出现错误.如果我评论.setServiceAccountUser("user@domain.com")该代码适用于我用于创建密钥的同一帐户.
在旧的DOCList API中,我们通过请求的URL模拟了另一个用户.它有类似的东西吗?
我正在尝试使用Java Google Calendar api连接到日历.Java应用程序使用服务帐户.
我有以下代码:
java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("xxx@developer.gserviceaccount.com")
.setServiceAccountUser(EMAIL_ADRESS)
.setServiceAccountScopes(CalendarScopes.CALENDAR)
.setServiceAccountPrivateKeyFromP12File(licenseFile)
.build();
client = new com.google.api.services.calendar.Calendar.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("Google Calendar Sync").build();
Calendar calendar = client.calendars().get(EMAIL_ADRESS).execute();
Run Code Online (Sandbox Code Playgroud)
在最后一行,我收到一条带有消息的IOException:
ex =(com.google.api.client.auth.oauth2.TokenResponseException)com.google.api.client.auth.oauth2.TokenResponseException:400 Bad Request {"error":"access_denied"}
我dubble检查了GoogleCredential对象的值,它们是正确的.我还添加了https://www.google.com/calendar/feeds/,http://www.google.com/calendar/feeds/与应用程序ID为我的客户域控制台授权第三方应用访问
我忘记了一步吗?
java google-calendar-api google-api google-apps google-api-java-client
使用Google API .NET Client v1.3.0-beta.
我创建了一个控制台应用程序,用于从服务帐户的示例代码中测试Google Admin Directory的基础知识.这应该给我一个域中所有电子邮件地址的计数.
using System;
using System.Collections.Generic;
using DotNetOpenAuth.OAuth2;
using Google.Apis.Admin.directory_v1;
using Google.Apis.Admin.directory_v1.Data;
using System.Security.Cryptography.X509Certificates;
using Google.Apis.Authentication.OAuth2;
using Google.Apis.Authentication.OAuth2.DotNetOpenAuth;
using Google.Apis.Services;
using Google.Apis.Util;
namespace ConsoleApplication1
{
class Program
{
private const string SERVICE_ACCOUNT_EMAIL = "012345678901@developer.gserviceaccount.com";
private const string SERVICE_ACCOUNT_ID = "012345678901.apps.googleusercontent.com";
private const string SERVICE_ACCOUNT_PKCS12_FILE_PATH = @"C:\ConsoleApplication1\randomlyassigned-privatekey.p12";
static void Main(string[] args)
{
X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret", X509KeyStorageFlags.Exportable);
var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate)
{
ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
Scope = AdminService.Scopes.AdminDirectoryUser.GetStringValue()
}; …Run Code Online (Sandbox Code Playgroud) 我的要求是启用OAuth 2.0现有的OAuth 1.0应用程序Google Apps Marketplace.我在控制台中创建了新的Google项目并为其创建了一个列表.现在我需要提交Google Apps Marketplace Listing Review Request.因为它是一个仅使用的API项目,Google Apps Marketplace SDK所以我无法对我的应用列表发出评论请求.由于我在所需部分中没有列出任何API,因此请求提交失败.
应用程序和列表经过测试安装到应用程序和项目的所有者(创建者)拥有的测试域.
我的问题是如何才能发布仅使用Google Apps Marketplace SDK的项目?有没有其他方法可以像仅创建Crome Web Store而不是发布到Google Apps Marketplace一样?
以下是范围设置代码和用户详细信息,用于检索我在应用程序的编程/实现端使用的代码.
// Create new instance of Google_Client
$client = new Google_Client();
$client->setClientId(GOOGLE_APP_CLIENT_ID);
// Set client secret
$client->setClientSecret(GOOGLE_APP_CLIENT_SECRET);
// Set redirect URI, this matches the Redirect URIs set in OAuth 2.0 client settings
$client->setRedirectUri(GOOGLE_APP_CLIENT_REDIRECT_URI);
// Set scopes
$client->addScope("openid profile email");
// …Run Code Online (Sandbox Code Playgroud) 我有两个应用程序通过服务帐户访问我的用户的日历.直到今天,一切都工作正常,突然之间的一个应用程序无法获得授权令牌.我读到这可能是由于同时使用相同的服务帐户(这是一年的情况,但没关系)所以我决定
我在Google Developers Console中创建了服务帐户 - > API Manager - > Credentials.
控制台现在看起来像这样:
Service account client 1是原始服务帐户,它适用于这两个应用程序,现在仅适用于其中一个.该ga...帐户是新创建的帐户.
为了获得ClientID,我去了(在同一页面上)"管理服务帐户",我得到了这个:
新创建的帐户不提供检查其ClientID的可能性.为什么?
ClientID也可在创建时下载的JSON文件中使用.我从那里解压缩并试图在我的GApps Security控制台中授权访问:
你可以看到它被拒绝了.
创建第二个帐户时我错过了哪些部分?
我们在使用适用于Google Apps市场用户的OAuth2服务帐户生成访问令牌时遇到问题.此处生成的令牌将用于访问Google API(联系人,日历,邮件,管理SDK API),因此我们服务中的所有Google集成都会失败.从太平洋标准时间3月9日太平洋标准时间开始突然失败.您能否将此视为重中之重,请告知我们问题的原因,或者我们是否遗漏了这些问题.我们正在获得API响应
{ "error": "invalid_request" }
Run Code Online (Sandbox Code Playgroud)
请查看以下示例请求以及" https://www.googleapis.com/oauth2/v4/token "(如文档中)和" https://accounts.google.com "的2个示例请求的所有标题和参数/ o/oauth2/token "端点.两者都分别导致响应{"error":"internal_failure","error_description":"Invalid Value"}和{"error":"invalid_request"}的错误消息.
PS:如果我们使用相应的Google客户端库,则服务电子邮件地址,用于在示例请求中生成以下签名的私钥文件都有效.但我们正在使用Google的REST API.我们在Google API控制台中创建了一个示例应用程序,用于测试新的服务帐户详细信息,这会导致相同的异常.
网址:
https://www.googleapis.com/oauth2/v4/token
头:
内容类型:应用/ X WWW的窗体-urlencoded
身体:
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =
响应:
代码:400 {"error":"internal_failure","error_description":"无效值"}
网址:
https://accounts.google.com/o/oauth2/token
头:
内容类型:应用/ X WWW的窗体-urlencoded
身体:
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =
响应:
代码:400 {"error":"invalid_request"}
编辑:文档中的示例请求.这段代码在过去的两年里为我们工作,突然间它昨天停止了工作.
POST/oauth2/v4/token HTTP/1.1主机:www.googleapis.com内容类型:application/x-www-form-urlencoded
grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w0rxMSjwruNKbysgRNctZPln7cqQ
google-api google-apps google-authentication google-apps-marketplace service-accounts
当您下载适用于iOS的新Google套件应用程序时 - 无论是GMail,收件箱,日历还是其他任何内容 - 它们都会让您使用您的帐户登录,并且已经向您显示您在其他地方登录的帐户.
这个问题适用于iOS和Android.
我知道应用程序可以使用Safari或新的Safari WebView(Android中的Chrome标签)和永久性Cookie来在应用程序之间共享数据.它有点笨拙,可以被用户删除cookie打破.但除此之外,它有效.
谷歌似乎正在使用别的东西.AdvertisingID?他们究竟是如何在这两种操作系统上实现共享数据的?
如何使用API安全测试可读写Google云端硬盘的应用?
我创建了一个在服务器上运行的应用程序,该应用程序基本上将模板google doc复制到另一个目录,然后编辑此新文件。
为此,我:
然后,该应用会模拟该域的用户(总是同一用户)来访问API资源。
这个程序可以用,但是有两个问题:
谢谢!
google-apps ×10
google-api ×4
c# ×2
android ×1
asp.net ×1
crm ×1
directory ×1
email ×1
google-oauth ×1
ios ×1
java ×1
salesforce ×1
smtp ×1