小编vic*_*ans的帖子

如何在用户单击地图上的(业务)位置时获取单击事件

我知道如何在地图上设置点击事件,点击随机位置时效果很好.但是,当我点击营业地点时,Google地图会显示包含有关业务信息的气球,但不会将点击事件提升到我的JavaScript.

您可以在此地理编码演示(http://rjshade.com/projects/gmaps-autocomplete/)上看到这种情况.浏览地图到某个城市并单击随机位置:地址显示在文本框中(华友世纪!).现在找到一些营业场所并点击:地图会弹出气球,但不会向JavaScript发送任何点击事件来更新文本框.讽刺的是:所需的地址信息在气球可用!

如何处理Google地图中商家位置的点击事件?

截图: 单击

google-maps-api-3 google-places-api

10
推荐指数
2
解决办法
4912
查看次数

在Google Apps Engine python项目中使用Google Drive API和服务帐户,并进行本地调试

在过去的几天里(在我可以花在这个项目上的奇数小时),我一直在努力开始在GAE python中使用带有服务帐户的Google Drive API进行本地调试.

我的设置:

  • Eclipse 4.4
  • 适用于Python 1.8.0的Google App Engine SDK
  • Google API客户端Python GAE 1.1

我在app.yaml中激活(以及其他)这些第三方库:

- name: pycrypto
  version: latest
- name: ssl
  version: latest
Run Code Online (Sandbox Code Playgroud)

这是我对设置软件的理解,在几个陈述中:

  • 因为我的应用不需要访问用户文件,而是一个特定于应用的文件,应用应该使用"服务帐户"来拥有和访问Google云端硬盘中的文件
  • 服务帐户可以通过两种方式进行身份验证:(1)通过API密钥和(2)通过私钥凭据进行身份验证
  • 在使用SDK开发GAE应用程序时,需要考虑两个环境:本地系统(用于调试)和GAE服务器(用于部署)
  • 在本地系统上运行时,API密钥身份验证不起作用(并且永远不会工作),因为双腿身份验证(不完全掌握这个...,但似乎是真的)

我真的想要本地调试工具,因为我正在学习python并学习google驱动器接口,因此在服务器上进行调试是一个很大的负担.

所以我需要获取在本地系统上工作的私钥凭证.但后来我遇到了问题"ImportError:无法导入名称SignedJwtAssertionCredentials".几乎尝试了我在网上找到的所有东西:

  • 使用python 2.7运行时并启用pycrypto库
  • 将google-api-python-client-gae升级到1.1(包括此修复程序)
  • 在我的系统上安装了OpenSSL(但可能没有成功设置正确的路径)
  • 阅读本地安装pycrypto的说明,但假设它们已经过时了

=>我要解释的第一个问题是:是否可以在GAE SDK中使用Python在本地系统上对Google Drive API进行身份验证?也许答案很简单'不'?

=>如果答案是'是',那么是否会有一个示例设置和代码示例,以显示实现此本地身份验证的方式?

=>错误日志(下面)似乎表明pycrypto仍然存在问题,但是文档明确地说它包含在Python 2.7 GAE运行时环境中.

=>也许(请确认)我对本地和服务器python设置之间的区别感到困惑.当我在Eclipse中查看'Run Local'PYTHONPATH时,它包括(1)我的项目文件夹,(2)google-api-client-python-gae文件夹(似乎不包括pycrypto !!),而GAE运行时确实 - 有什么区别?(3)我的本地Python 2.7部署.那么在本地配置中我需要模仿服务器配置才能开始调试?

这是我使用私钥凭据进行身份验证的代码:

from oauth2client.client import SignedJwtAssertionCredentials
f = file(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key, scope=OAUTH_SCOPE)
http = httplib2.Http()
http = credentials.authorize(http)
return build('drive', 'v2', …
Run Code Online (Sandbox Code Playgroud)

google-app-engine oauth-2.0 google-drive-api

7
推荐指数
1
解决办法
1647
查看次数

将XML文件作为IFTTT的输入汇总到RSS提要中

我有一组带有文章内容(标题,副标题,内容)的XML文件.我有一个雅虎管道,它找到特定日期的文章XML并将其转换为RSS源.IFTTT会阅读此Feed,以便今天在我的Wordpress博客上发布该文章.

现在雅虎管道在九月份正在下降,我遇到了麻烦!我可以使用什么服务从XML获取内容并将其提供给IFTTT,因此可以在我的博客上发布.据我所知,IFTTT仅将RSS作为此类事物的输入.

我已经尝试过pipe2py将Pipe变成Python代码(如果这样可以工作),但是我无法使用pipe2py,而不是GAE(因为我需要一个在线服务),而不是在我的Windows PC上.

我也对YQL很有经验,但是只输出XML,没有RSS,所以这里没用.

到目前为止,我只能想到:

  1. 在GAE/Python上实现我自己的应用程序,它读取XML并将其转换为RSS(繁琐)

  2. 在截止日期之前手动发布我博客上的所有文章(每天三篇月的文章 - 更加繁琐)

有任何想法吗?

python wordpress rss yahoo-pipes yql

5
推荐指数
1
解决办法
557
查看次数

几天后 Python OAuth 无法刷新令牌并显示“invalid_grant”错误

我有一个在 Raspberry Pi 上运行的 Python 应用程序,它开始向我管理的 YouTube 频道进行直播。这是我用来验证的代码:

import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
import google.auth.transport.requests
import google.oauth2.credentials
import requests

CLIENT_SECRETS_FILE = "client_secrets.json"
YOUTUBE_READ_WRITE_SCOPE = "https://www.googleapis.com/auth/youtube"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

def get_authenticated_service(args):
    credentials = None
    credentials_json_file = "youtube-%s.json" % slugify(args.oauth2_name)
    if os.path.exists(credentials_json_file):
        # load credentials from file
        with open(credentials_json_file, encoding='utf-8') as f:
            credentials_json = json.load(f)
        credentials = google.oauth2.credentials.Credentials.from_authorized_user_info(credentials_json)
    if not credentials or not credentials.valid:
        # no credentials file or invalid credentials
        if credentials and credentials.expired and credentials.refresh_token:
            # …
Run Code Online (Sandbox Code Playgroud)

youtube google-api python-3.x google-oauth youtube-data-api

0
推荐指数
1
解决办法
806
查看次数