gpt4 book ai didi

ios - 由于 API key 无效(格式错误或丢失),操作失败

转载 作者:行者123 更新时间:2023-12-01 16:13:46 28 4
gpt4 key购买 nike

使用谷歌代码 IOS 描述:autocomplete

在用户在搜索框中输入的第一个字符处,发生错误:

Error:  The operation couldn’t be completed. Operation failed due to an invalid (malformed or missing) API key. See the developer's guide (https://developers.google.com/places/ios-sdk/start) for information on creating and using an API key.
despite that calls to the API were successful:
GMS Services Key Valid: true
GMS Services SDK version: 3.3.0
GMS Places Key Valid: true
GMS Places SDK version: 3.3.0

这是应用程序的跟踪:
2019-08-17 16:46:52.056351-0400 GPDemo[345:15310] [DYMTLInitPlatform] platform initialization successful
Entering AppDelegate.swift now...
Sending API key to Google Services and Places Client
GMS Services Key Valid: true
GMS Services SDK version: 3.3.0
GMS Places Key Valid: true
GMS Places SDK version: 3.3.0
Leaving AppDelegate.swift now...
warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.
Entering viewDidLoad now...
Leaving viewDidLoad now...
2019-08-17 16:51:54.281297-0400 GPDemo[345:15082] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2019-08-17 16:51:54.283666-0400 GPDemo[345:15082] [MC] Reading from public effective user settings.
Entering didUpdateAutocompletePredictions function now...
Leaving didUpdateAnyAutocompletePredictions function now...
2019-08-17 16:51:55.829602-0400 GPDemo[345:15082] [framework] CUIThemeStore: No theme registered with id=0
Entering didRequestAutocompletePredictions function now...
Leaving didRequestAutocompletePredictions function now...
Entering didUpdateAutocompletePredictions function now...
Leaving didUpdateAnyAutocompletePredictions function now...
Entering resultsContoller didFailAutocomplete function now...
Error: The operation couldn’t be completed. Operation failed due to an invalid (malformed or missing) API key. See the developer's guide (https://developers.google.com/places/ios-sdk/start) for information on creating and using an API key.
Leaving resultsController didFailAutocomplete function now...
2019-08-17 16:54:13.293721-0400 GPDemo[345:15869] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x105e40a60] get output frames failed, state 8196
2019-08-17 16:54:13.297185-0400 GPDemo[345:15869] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x105e40a60] get output frames failed, state 8196
2019-08-17 16:54:13.299238-0400 GPDemo[345:15869] TIC Read Status [1:0x0]: 1:57
2019-08-17 16:54:13.300271-0400 GPDemo[345:15869] TIC Read Status [1:0x0]: 1:57

任何帮助表示赞赏。

使用相同的 key 访问 Map API 工作正常!
//  AppDelegate.swift
// GPDemo
//



import UIKit
import GoogleMaps
import GooglePlaces

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?


func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

print("Entering AppDelegate.swift now...")

print("Sending API key to Google Services and Places Client")

//// Maps API
// JpDimoi "kiquoa-ios-places" key... 8/9/19
let GMSServicesKeyValid =
GMSServices.provideAPIKey("MY_API_KEY")
// JpDimoi "kiquoa-ios" key...

let GMSServicesSDKVer = GMSServices.sdkVersion()
print("GMS Services Key Valid: ", GMSServicesKeyValid)
print("GMS Services SDK version: ", GMSServicesSDKVer)

//// Places API
// JpDimoi "kiquoa-ios-places" key... 8/9/19
let GMSPlacesKeyValid =


GMSPlacesClient.provideAPIKey(
"MY_API_KEY")
// JpDimoi "kiquoa-ios" key...

let GMSPlacesSDKVer = GMSPlacesClient.sdkVersion()
print("GMS Places Key Valid: ", GMSPlacesKeyValid)
print("GMS Places SDK version: ", GMSPlacesSDKVer)

print("Leaving AppDelegate.s`enter code here`wift now...")

return true
}

func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to
// inactive state. This can occur for certain types of temporary
// interruptions (such as an incoming phone call or SMS message)
// or when the user quits the application and it begins the
// transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and
// invalidate graphics rendering callbacks. Games should use this
// method to pause the game.
}

func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data,
// invalidate timers, and store enough application state
//information to
// restore your application to its current state in case it is
//terminated
// later.
// If your application supports background execution, this method
// is called instead of applicationWillTerminate: when the user
// quits.
}

func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the
// active state; here you can undo many of the changes made on
// entering
// the background.
}

func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while
// the application was inactive. If the application was
// previously in the
// background, optionally refresh the user interface.
}

func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data
// if appropriate. See also applicationDidEnterBackground:.
}


}

// GPDemo ViewController.swift
//
// Exact copy of code for results view controller
// when adding a searchBar to the top of the view
// Ref: https://developers.google.com/places/ios-sdk/autocomplete

import UIKit
import GooglePlaces

class ViewController: UIViewController {

var resultsViewController: GMSAutocompleteResultsViewController?
var searchController: UISearchController?
var resultView: UITextView?

override func viewDidLoad() {

print("Entering viewDidLoad now...")
super.viewDidLoad()

resultsViewController = GMSAutocompleteResultsViewController()
resultsViewController?.delegate = self

searchController = UISearchController(searchResultsController:
resultsViewController)
searchController?.searchResultsUpdater = resultsViewController

let subView = UIView(frame: CGRect(x: 0, y: 65.0, width: 350.0,
height: 45.0))

subView.addSubview((searchController?.searchBar)!)
view.addSubview(subView)
searchController?.searchBar.sizeToFit()
searchController?.hidesNavigationBarDuringPresentation = false

// When UISearchController presents the results view, present it
// in
// this view controller, not one further up the chain.
definesPresentationContext = true

print("Leaving viewDidLoad now...")
}
}

// Handle the user's selection.
extension ViewController: GMSAutocompleteResultsViewControllerDelegate {
func resultsController(_ resultsController:
GMSAutocompleteResultsViewController,
didAutocompleteWith place: GMSPlace) {
searchController?.isActive = false
print("Entering resultsController didAutocompleteWith place
function now...")
// Do something with the selected place.
//print("Place name: \(place.name)")
print("Place address: \(String(describing:
place.formattedAddress))")
//print("Place attributions: \(place.attributions)")
print("Leaving resultsController didAutocompleteWith place
function now...")
}

func resultsController(_ resultsController:
GMSAutocompleteResultsViewController,
didFailAutocompleteWithError error: Error){
// TODO: handle the error.
print("Entering resultsContoller didFailAutocomplete function
now...")
print("Error: ", error.localizedDescription)
print("Leaving resultsController didFailAutocomplete function
now...")
}

// Turn the network activity indicator on and off again.
func didRequestAutocompletePredictions(forResultsController
resultsController: GMSAutocompleteResultsViewController) {
print("Entering didRequestAutocompletePredictions function
now...")
UIApplication.shared.isNetworkActivityIndicatorVisible = true
print("Leaving didRequestAutocompletePredictions function
now...")
}

func didUpdateAutocompletePredictions(forResultsController
resultsController: GMSAutocompleteResultsViewController) {
print("Entering didUpdateAutocompletePredictions function
now...")
UIApplication.shared.isNetworkActivityIndicatorVisible = false
print("Leaving didUpdateAnyAutocompletePredictions function
now...")

}
}

期望的建议列表地址完成。

最佳答案

即使在启用 Places API 并按照指南生成 key 后,我也遇到了同样的错误。但是我没有设置结算帐号对于这个 API。一旦我设置了它,API 就可以正常工作了。只要确保您设置了文档中的所有内容
https://developers.google.com/places/ios-sdk/start

关于ios - 由于 API key 无效(格式错误或丢失),操作失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542533/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com