更新:请,如果有人可以提供帮助:谷歌正在等待他们的错误跟踪工具上的输入和此问题的示例.如果您有针对此问题的可重现步骤,请分享:https://code.google.com/p/googleappengine/issues/detail?id = 10937
我正在尝试使用Google App Engine后端从StackExchange API获取数据.您可能知道,StackExchange的某些API是特定于站点的,要求开发人员针对用户注册的每个站点运行查询.
所以,这是我从这些网站获取时间线数据的后端代码.该feed_info_site变量保存StackExchange站点名称(如'security','serverfault'等).
data = json.loads(urllib.urlopen("%sme/timeline?%s" %
(self.API_BASE_URL, urllib.urlencode({"pagesize": 100,
"fromdate": se_since_timestamp, "filter": "!9WWBR
(nmw", "site": feed_info_site, "access_token":
decrypt(self.API_ACCESS_TOKEN_SECRET, self.access_token), "key":
self.API_APP_KEY}))).read())
for item in data['items']:
... # code for parsing timeline items
Run Code Online (Sandbox Code Playgroud)
在除Stack Overflow之外的所有站点上运行此查询时,一切正常.有点奇怪的是,当feed_info_site变量设置为时'stackoverflow',我从Google App Engine收到以下错误:
HTTPException: Invalid and/or missing SSL certificate for URL:
https://api.stackexchange.com/2.2/me/timeline?
filter=%219WWBR%28nmw&access_token=
<ACCESS_TOKEN_REMOVED>&fromdate=1&pagesize=100&key=
<API_KEY_REMOVED>&site=stackoverflow
Run Code Online (Sandbox Code Playgroud)
当然,如果我在Safari中运行相同的查询,我会得到我期望从API获得的JSON结果.所以问题实际上在于Google的URLfetch服务.我在Stack Overflow上发现了几个与类似的HTTPS/SSL异常相关的主题,但没有接受的答案解决了我的问题.我试过删除cacerts.txt文件.我也试过打电话validate_certificate=False,没有成功.
我认为问题与HTTPS/SSL并不严格相关.如果是这样,您如何解释更改单个API参数会导致请求失败?
我正在开发一个用Swift编写的iOS项目,我想从常规的"app"项目中取出一些类,然后将它捆绑到一个可重用的Swift框架中(也许可以在Github和Cocoapods上公开发布) ).
我遇到了问题,因为框架看起来似乎不能有Objective-C桥接头,但为了编译我的框架代码,我需要引用几个Objective-C类(在这种情况下:Google Maps iOS SDK).
我还在我的框架项目中添加了GoogleMaps.framework作为链接库,但是,如何从Swift代码"导入"它?
使用当前工具和Swift版本甚至可以实现这一点,我该如何处理?
谢谢.
我知道关于这个主题已经有一些关于SO的问题,但是很少有人接受了答案,我认为我没有找到与我相同的问题.
我正在构建一个Swift pod,在我的代码中,我依赖于Google Maps iOS SDK,它被捆绑为一个.framework文件.该项目在Xcode中构建正常,但是我很难将lib发布到Cocoapods.
我设法有一个Podspec几乎使用该pod lib lint命令验证的文件.但是,现在我已将Google-Maps-iOS-SDKpod 添加为Podspec文件中的依赖项,但它失败并显示以下消息:
$ pod lib lint
[!]'Pods'目标具有包含静态二进制文件的传递依赖:(/private/var/folders/n2/qyjfpk6n7zz_mngtwswlmsy00000gn/T/CocoaPods/Lint/Pods/Google-Maps-iOS-SDK/GoogleMaps.framework)
$
这是预期的吗?为什么我不能在我自己的基于Swift的pod中添加Google Maps iOS SDK作为pod引用?
这是Podspec:
Pod::Spec.new do |s|
s.name = '(name)'
s.version = '1.0.0'
s.summary = '(summary)'
s.platforms = { :ios => '8.0', :osx => '10.10' }
s.ios.deployment_target = '8.0'
s.osx.deployment_target = '10.10'
s.license = { :type => 'BSD', :file => 'LICENSE' }
s.source_files = 'Sources/*.{h,swift}', '*.framework'
s.source = { :git => …Run Code Online (Sandbox Code Playgroud) 我正在使用Xcode 4开发自己的框架,我在两个示例应用程序(一个控制台和Mac OS X Cocoa应用程序)中使用它.
我正在尝试向框架添加本地化,所以我创建了两个版本的Localizable.strings文件(en和fr版本),但每次我尝试从示例应用程序打印本地化字符串时,我只会获得其技术名称.例如,在框架代码中包含以下行:
NSLog(NSLocalizedString(@"LOC_TEST", nil));
Run Code Online (Sandbox Code Playgroud)
我只"LOC_TEST"在输出中显示...
然而,本地化与Cocoa应用程序本身一起工作正常(意味着Cocoa应用程序的本地化字符串被正确显示).
在本文之后,我尝试在框架的plist文件中添加本地化:
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>fr</string>
</array>
Run Code Online (Sandbox Code Playgroud)
但它没有改变任何东西......
我错过了什么?
我正在尝试在iOS应用中格式化货币值,并且正在使用设备上的当前“语言环境”设置来使用适当的货币格式。
在模拟器中,一切似乎运行良好:使用时currencyFormatter.locale = Locale.current,它将采用正确的语言环境设置并以正确的货币格式打印数字。
但是,在我的iPhone(使用法语和法语区域设置配置)上,我希望使用其他格式(例如:1 234,56€)。但这是行不通的,并且似乎使用了英语格式样式(例如:€1 234,56)。
实际上,如果我从设备上的应用程序中打印当前的语言环境,它不会fr_FR像我期望的那样返回:
NSLog(Locale.current.identifier)
>>> en_FR
Run Code Online (Sandbox Code Playgroud)
该地区不错,但语言却不好,尽管该设备上的iOS显然是法语。
有没有人对此有想法?
谢谢!
我正在开发App Engine应用程序并计划提供API.我想将此API与主站点分开,因此我尝试使用"模块"功能来分离这两个应用程序.主站点将是"默认"模块,API将位于"api"模块中.但是,我遇到了麻烦.
现在我的主应用程序的YAML文件是这样的:
application: my-app
module: default
runtime: python27
api_version: 1
...
handlers:
# Root handler
- url: /.*
script: main.app
secure: always
...
Run Code Online (Sandbox Code Playgroud)
和API模块YAML文件,如下所示:
application: my-app
module: api
runtime: python27
api_version: 1
handlers:
# Endpoints handler
- url: /_ah/spi/.*
script: api_main.app
secure: always
...
Run Code Online (Sandbox Code Playgroud)
在开发服务器上,应用程序在端口8000上提供,API在端口7998上提供.
使用此配置,我的API不起作用.每当我尝试使用localhost:7998/_ah/api/explorer访问它时,我都没有得到任何结果.如果我尝试手动运行API请求,则会收到以下错误:{"error": {"message": "BackendService.getApiConfigs Error"}}.
奇怪的是我在开发服务器日志中也看到以下几行:
INFO 2014-06-15 18:00:32,368 module.py:639] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 500 -
INFO 2014-06-15 18:00:32,368 module.py:639] api: "GET /_ah/api/my-app/v1/events HTTP/1.1" 500 60
Run Code Online (Sandbox Code Playgroud)
似乎API模块正在尝试将数据POST到默认模块(如第一行日志中所示).
现在,我发现的唯一解决方法是/_ah/spi/.*在默认的YAML文件中添加相同的处理程序,但在这种情况下,主应用程序和API之间的分离无效.
有人能告诉我云端点是否支持我想要实现的配置?非常感谢你!
我正在尝试将Facebook的注册工具用于我的网站.我想允许Facebook用户无缝登录我的网站,但也允许非Facebook用户通过统一的用户界面创建帐户.
我正在使用<fb:registration>标签.如果我在到达页面时已经连接到Facebook,一切都按预期工作(表格预先填入我的Facebook帐户的信息).但如果我没有连接到Facebook,则会显示以下错误:Invalid 'client_id'..
我究竟做错了什么?
非常感谢您的帮助.
您将在下面找到从服务器呈现的HTML代码:
<!doctype html>
<html xmlns:fb='http://www.facebook.com/2008/fbml'>
<head id='head'>
<title>MyWebSite - Signup</title>
<link rel='stylesheet' type='text/css' href='/client/Core.css'/>
<script language='JavaScript' type='text/javascript' src='/client/jQuery.js'></script>
<script type='text/javascript'>
function initialize() {
$.getScript('client/Core.js');
$.getScript(document.location.protocol + '//connect.facebook.net/en_US/all.js');
}
window.fbAsyncInit = function() {
FB.init({
appId : 123456789, // replaced here by my App ID
session : {},
status : true,
cookie : true,
xfbml : true
});
FB.Event.subscribe('auth.login', function() {
window.location.href = 'DoLogin';
});
};
</script>
</head>
<body onload='initialize();'>
<span id='fb-root'></span>
<fb:registration …Run Code Online (Sandbox Code Playgroud) 在PostgreSQL 9 + PostGIS 1.5中,有没有办法创建"通用"GEOGRAPHY列?我指的是一个接受POINT以及POLYGON,LINESTRING等的专栏.到目前为止,我只在互联网上看过像GEOGRAPHY(POINT,4326)这样的专栏.
如果那是不可能的,那么你将如何设计(从数据库的角度来看)一个链接到随机地理对象(点,多边形,等等)的实体?我应该为每种我想支持的地理对象创建3个,4个,5个不同的表吗?(1个POINT对象表,1个POLYGON对象表等)?
提前致谢.
罗曼
我正在尝试在我的应用程序中创建一个函数,该函数将引导用户使用我创建的标记.这是我正在使用的代码,它运行良好,它获取用户当前位置并在地图上显示它.但是如何获得标记的指示?
任何芒果都会有所帮助
class Karta: UIViewController, CLLocationManagerDelegate {
@IBOutlet var mapView: GMSMapView!
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
//allow app to track user
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
//set out a marker on the map
var marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(56.675907, 12.858798)
marker.appearAnimation = kGMSMarkerAnimationPop
marker.icon = UIImage(named: "flag_icon")
marker.map = mapView
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "Types Segue" {
let navigationController = segue.destinationViewController as UINavigationController
}
}
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus …Run Code Online (Sandbox Code Playgroud) 我已经从 codecanyon 下载了一个应用程序模板。
当我在模拟器上运行时,它运行良好。但是当我尝试在真实设备或 iOS 通用设备上构建时,它失败并显示以下错误:
> duplicate symbol l123 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFAppLinkReturnToRefererView.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFTask.o)
> duplicate symbol l028 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFTaskCompletionSource.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFMeasurementEvent.o)
> duplicate symbol l029 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFTaskCompletionSource.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFExecutor.o)
> duplicate symbol l152 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/GoogleSignIn.framework/GoogleSignIn(GIDAuthentication.o)
> duplicate symbol l153 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/GoogleSignIn.framework/GoogleSignIn(GIDAuthentication.o)
> duplicate symbol l154 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/GoogleSignIn.framework/GoogleSignIn(GIDAuthentication.o)
> duplicate symbol l155 in:
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/Bolts.framework/Bolts(BFWebViewAppLinkResolver.o)
> /Users/sagar/Downloads/123/FoodDelivery/FoodDelivery/Resources/Frameworks/GoogleSignIn.framework/GoogleSignIn(GIDAuthentication.o)
> .....
Run Code Online (Sandbox Code Playgroud)
ld:架构 arm64 clang 的 91 个重复符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) …
我正在尝试构建一组共享通用初始化代码的类。除了继承之外,我认为协议是可行的方法。虽然协议和协议扩展对我来说可以使用实例和静态方法,但我在使其与初始值设定项一起使用时遇到了一些麻烦。
假设我们有这个协议:
protocol CloudServiceWrapper {
static var isConfigured: Bool { get }
init()
func initialize()
}
Run Code Online (Sandbox Code Playgroud)
现在假设我们要在协议扩展中添加isConfigured和的默认实现:init()
extension CloudServiceWrapper {
static var isConfigured: Bool {
get {
return true
}
}
init() {
print("Initializing generic CloudServiceWrapper")
self.init()
if Self.isConfigured {
initialize()
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后,让我们有一个类实现此协议并尝试从其默认实现中受益:
class OneDriveWrapper: CloudServiceWrapper {
required init() {
// CloudServiceWrapper() // error: protocol type 'CloudServiceWrapper' cannot be instantiated
// self = CloudServiceWrapper.init() // error: cannot assign to value: 'self' is immutable
// super.init() …Run Code Online (Sandbox Code Playgroud) 我有一个HUser模型(源自谷歌的User类),它反过来包含0到n个社交帐户实例.这些帐户可以引用Facebook,Twitter或LinkedIn帐户.我已经构建了一个Account模型,并StructuredProperty在我的User模型中定义了一个repeated=True,如下所示:
class Account(ndb.Expando):
account_type = ndb.StringProperty(required=True, choices=['fb', 'tw', 'li'])
account_id = ndb.StringProperty()
access_token = ndb.StringProperty()
...
class HUser(User):
email = ndb.StringProperty(required=True, validator=validate_email)
created = ndb.DateTimeProperty(auto_now_add=True)
accounts = ndb.StructuredProperty(Account, repeated=True)
Run Code Online (Sandbox Code Playgroud)
如果我只向我的用户添加Facebook或LinkedIn帐户,一切都按预期工作.但奇怪的是,每当我添加一个Twitter帐户时,我添加到同一个用户的所有后续帐户都存储为_BaseValue(Account()),而不是Account()直接存储.因此,在我尝试获取帐户的页面中,我通常会遇到以下错误:
AttributeError:'_ BaseWalue'对象没有属性'account_type'
我已经读过这些_BaseValue转换是Google的ndb源代码中的一个错误,但我怎么能摆脱它呢?目前我正在使用这个糟糕的解决方法来绕过异常:
if type(account) == _BaseValue:
account = account.b_val
logging.warn("WARN: %s account %s was of type _BaseValue..." % (account.account_type, account.account_id))
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
python google-app-engine app-engine-ndb google-cloud-datastore
ios ×5
swift ×5
xcode ×3
objective-c ×2
cocoapods ×1
directions ×1
facebook ×1
fbml ×1
frameworks ×1
geography ×1
lint ×1
locale ×1
localization ×1
postgis ×1
postgresql ×1
python ×1
registration ×1
ssl ×1
urlfetch ×1
xcode4 ×1