(я не использовал проверку подлинности ключа на основе, поэтому некоторые части, возможно, должны быть изменены.)
Во-первых, вам нужно правильно процентов маскирование URL строка без подписи:
let key = "AI...OI" // better hide your actual key in a public space...
let rawURLString = "https://maps.googleapis.com/maps/api/staticmap?key=\(key)¢er=6.241381%2B-75.595083&zoom=13&size=600x300&path=color%3A0x0000ff%7Cweight%3A5%7C6.241381%2B-75.595083"
//`rawURLString` needs to be a valid string representation of URL.
assert(NSURL(string: rawURLString) != nil)
И затем, сгенерировать base64-закодированные подписи для строки URL:
let encodedSignature: String = generateEncodedSignature(rawURLString, secret: yourSecretKey)
После этого, вы можете создать подписанную строку URL:
let signedURLString = "\(rawURLString)&signature=\(encodedSignature)"
(Я считаю, что у вас есть некоторые функциональные возможности для создания подписи или подписанный URL в своем приложении, изменять выше код в соответствии с ним.)
содержание signedURLString
должно выглядеть следующим образом:
https://maps.googleapis.com/maps/api/staticmap?key=AI...OI¢er=6.241381%2B-75.595083&zoom=13&size=600x300&path=color%3A0x0000ff%7Cweight%3A5%7C6.241381%2B-75.595083&&signature=u7...=
(signature
может не начинаться с «u7».)
И создать NSURL
, используя signedURLString
. Не удаляйте процентные кодировки.
let url = NSURL(string: signedURLString)
Вы вводите этот URL-адрес в реальном браузере устройства iOS или используете браузер своего компьютера? – rmaddy
@LeoDabus Я пробовал, не снимая процентов и то же самое. –
@rmaddy Я использую браузер своего компьютера. –