IP, trang web hoặc ứng dụng di động này không được phép sử dụng khóa API này


99

Tôi đang sử dụng https://maps.googleapis.com/maps/api/geocode/json ? liên kết với khóa máy chủ và IP của người dùng để tìm vĩ độ và kinh độ của bất kỳ địa chỉ nào, khi tôi thử, tôi tìm thấy lỗi là

Tôi có khóa truy cập máy chủ từ google và tôi đã đưa địa chỉ IP máy chủ của mình vào danh sách trắng của họ.

URL mà tôi đang cố gắng truy cập qua PHP CURL là:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

Kết quả mà tôi nhận được:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

Có bất kỳ thứ gì tôi cần cấu hình không. API mã hóa địa lý cũng được bật.


bạn có để có được một chìa khóa ủy quyền từ google, và đặt nó vào api
Dimag Kharâb

Đã có sẵn một khóa API
sanket

Đánh dấu vào câu trả lời của Mike nó làm việc cho tôi
Sheraz Ahmad Khilji

Chấp nhận câu trả lời của mike20132013! Nó hoạt động!
aveschini

Câu trả lời:


150

Tôi đã có cùng một vấn đề và tôi đã tìm thấy điều này.

Trên url, cuối cùng nó yêu cầu khóa máy chủ chứ không phải khóa api cho ứng dụng.

Vì vậy, về cơ bản, bạn chỉ cần thêm khóa máy chủ vào cuối URL như sau:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

Bây giờ, để lấy khóa máy chủ, chỉ cần làm theo các bước sau:

1) Truy cập Bảng điều khiển dành cho nhà phát triển https://code.google.com/apis/console/

2) Trong Thông tin đăng nhập, trong Quyền truy cập API công khai, Tạo khóa mới

3) Chọn khóa máy chủ từ tùy chọn.

4) Nhập Địa chỉ IP của bạn vào trường và nếu bạn có nhiều địa chỉ IP hơn, bạn có thể chỉ cần thêm vào mỗi dòng. LƯU Ý: Chỉ nhập Địa chỉ IP khi bạn muốn sử dụng nó cho mục đích thử nghiệm của mình. Nếu không, hãy để trống phần Địa chỉ IP.

5) Sau khi hoàn tất, hãy nhấp vào tạo và Khóa máy chủ mới của bạn sẽ được tạo và sau đó bạn có thể thêm khóa máy chủ đó vào URL của mình.

Điều cuối cùng là, thay vì đặt cảm biến = true ở giữa URL, bạn có thể thêm nó vào cuối như thế này:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

Điều này chắc chắn sẽ giải quyết được vấn đề và chỉ cần nhớ sử dụng khóa máy chủ cho Places API .

BIÊN TẬP

Tôi tin rằng URL của trang web đã thay đổi trong những năm qua. Bạn có thể truy cập bảng điều khiển dành cho nhà phát triển từ đây ngay bây giờ - https://console.developers.google.com/apis/dashboard

  • Điều hướng đến bảng điều khiển dành cho nhà phát triển - https://console.developers.google.com/ hoặc sử dụng liên kết từ chi tiết để điều hướng trực tiếp đến trang tổng quan API.
  • Trong bảng điều khiển dành cho nhà phát triển, tìm Nhãn từ bảng điều hướng bên trái
  • Chọn dự án
  • Chọn Thông tin đăng nhập từ bảng Điều hướng bên trái
  • Bạn có thể tạo loại thông tin xác thực từ thanh Điều hướng trên cùng theo yêu cầu.

Hy vọng câu trả lời này sẽ giúp ích cho bạn và những khán giả khác. Chúc may mắn .. :)


8
Rất quan trọng 4) Nhập Địa chỉ IP của bạn vào trường và nếu bạn có nhiều địa chỉ IP hơn, bạn chỉ có thể thêm trên mỗi dòng. LƯU Ý: Chỉ nhập Địa chỉ IP khi bạn muốn sử dụng nó cho mục đích thử nghiệm của mình. Nếu không, hãy để trống phần Địa chỉ IP.
Sheraz Ahmad Khilji,

6
Đúng vậy .. chỉ xác định Địa chỉ IP / Địa chỉ cho mục đích thử nghiệm. Nếu không, hãy để trống. Vì bạn đang hạn chế ứng dụng hoặc khóa api chỉ hoạt động trên các thiết bị / ứng dụng cụ thể.
mike20132013

1
@johnshumon Vâng, tôi đoán .. chưa cập nhật câu trả lời cho các lứa tuổi. Có thể là một số thay đổi API mới.
mike20132013

1
Có thể muốn cũng chắc chắn rằng Google Places API Web Service là một API cho phép cũng
Justin Wilson

1
Vật lộn với điều này hàng giờ trước khi phát hiện ra rằng "dự án" mới hiện phải được liên kết với tài khoản thanh toán trên đám mây của Google để API Google ngừng đưa ra các lỗi chung chung khác nhau này. Ngưỡng có thể được đặt thành $ 0 để bạn sẽ không bao giờ bị tính phí nếu việc sử dụng vượt quá hạn ngạch cho phép.
Sparky

15
  1. Chọn khóa
  2. Tab Hạn chế API
  3. Chọn khóa API
  4. Tiết kiệm
  5. Chọn Hạn chế Ứng dụng -> Không có
  6. Tiết kiệm

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


tôi đã có vài dịch vụ được liệt kê trong những hạn chế api nhưng không mã hóa địa lý
Muhammad Umer

làm việc như người ở. Cảm ơn đã cố gắng mã hóa địa lý. Tôi đặt các giới hạn ứng dụng thành không như bạn đã chỉ ra và nó đã hoạt động.
Ravi

4
Hạn chế: không có gì là khá nguy hiểm.
Deniss M.

8
Vô hiệu hóa bảo mật không phải là một giải pháp!
Bartholomej

KHÔNG ĐỂ LẠI KHÓA API KHÔNG HẠN CHẾ! "Dự án" mới hiện phải được liên kết với tài khoản thanh toán để Google API ngừng đưa ra các lỗi chung chung khác nhau này. Ngưỡng có thể được đặt thành $ 0 để bạn sẽ không bao giờ bị tính phí nếu việc sử dụng vượt quá hạn ngạch cho phép.
Sparky

14

Ngoài khóa API được chỉ định cho bạn, Google cũng xác minh nguồn của yêu cầu đến bằng cách xem REFERRERhoặc địa chỉ IP. Để chạy một ví dụ trong curl, hãy tạo một bảng điều khiển mới Server Keytrong Google APIs . Trong khi tạo, bạn phải cung cấp địa chỉ IP của máy chủ. Trong trường hợp này, nó sẽ là địa chỉ IP cục bộ của bạn . Sau khi bạn đã tạo Server Keyvà đưa địa chỉ IP của mình vào danh sách cho phép, bạn sẽ có thể sử dụng khóa API mới ngay lập tức.

Tôi đoán là bạn có thể đã tạo khóa API của mình dưới dạng khóa Browser Keynày không yêu cầu bạn đưa địa chỉ IP của mình vào danh sách trắng mà thay vào đó sử dụng REFERRERthẻ tiêu đề HTTP để xác thực. curl không gửi thẻ này theo mặc định, vì vậy Google đã không thể xác thực yêu cầu của bạn.


1+ Sẽ cần tạo khóa API máy chủ để sử dụng dịch vụ Mã địa lý của Google. Cũng cần bật dịch vụ mã hóa địa lý bản đồ của Google từ bảng điều khiển API của Google .. Cảm ơn !!
Sumit Munot

Vật lộn với điều này hàng giờ trước khi phát hiện ra rằng "dự án" mới hiện phải được liên kết với tài khoản thanh toán trên đám mây của Google để API Google ngừng đưa ra các lỗi chung chung khác nhau này. Ngưỡng có thể được đặt thành $ 0 để bạn sẽ không bao giờ bị tính phí nếu việc sử dụng vượt quá hạn ngạch cho phép.
Lấp lánh

6

API Google Địa điểm hiện không hỗ trợ các khóa Android hoặc iOS được tạo từ Bảng điều khiển API của Google. Hiện chỉ hỗ trợ khóa Máy chủ và Trình duyệt.


1
Thật thú vị ... vậy làm cách nào để tạo một khóa để sử dụng trong các ứng dụng Android hoặc iOS?
Graham Perks

Các phím Trình duyệt của bạn sẽ hoạt động trên Android và iOS. Nhận khóa Trình duyệt trong Bảng điều khiển API của Google
Nazrul Islam,

Họ không cần nỗ lực thêm. Tôi chỉ tìm ra điều này sau một ngày bực bội hôm qua; có một bước bổ sung cho ứng dụng: stackoverflow.com/a/58136437/434004
Graham Perks

3

Bạn đang cố gắng sử dụng một API KEY mà bạn đã hạn chế theo cách không cho phép hành động này.

Theo Google:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

Vì vậy, điều đúng đắn cần làm là tạo một API KEY khác và chọn các hạn chế chính xác cho vấn đề này. Trong trường hợp của bạn, hãy chọn "Địa chỉ IP" (trong "Hạn chế ứng dụng") và sử dụng "THÊM MỘT MỤC" để thêm ip máy chủ của bạn. Lưu ý rằng việc để trống danh sách sẽ không hoạt động và dẫn đến việc google sẽ thay đổi các hạn chế của bạn thành "Không".

Ngoài ra, đừng quên thêm các API có liên quan trong "Hạn chế API" (trong trường hợp của bạn là "API mã hóa địa lý").

Một điều cuối cùng - Google đang chặn việc sử dụng API này cho đến khi bạn liên kết ứng dụng của mình với Tài khoản Google Cloud Billing. Vì vậy, nếu bạn chưa làm điều đó, một khi bạn nhận được phản hồi thành công, nó sẽ thông báo bạn phải làm điều đó trước (nó có gói bắt đầu miễn phí).


2

Bạn tạo một khóa không có người giới thiệu không nhập địa chỉ người giới thiệu


bạn có thể vui lòng giải thích thêm
Sagar Devanga

2
Trong khi Tạo khóa, bạn có nơi để thêm Địa chỉ giới thiệu, vui lòng Kiểm tra xem bạn đã Thêm gì vào đó chưa. nếu được thêm Xóa nó
DeadlyDroid

2

API Google Place yêu cầu phải bao gồm tiêu đề HTTP giới thiệu khi thực hiện lệnh gọi API.

Bao gồm tiêu đề HTTP "Referer: yourdomain.com" và điều này sẽ khắc phục sự cố phản hồi.


1
Mặc dù điều này có thể trả lời câu hỏi nhưng luôn luôn là một ý kiến ​​hay nếu bạn đưa một số văn bản vào câu trả lời để giải thích những gì bạn đang làm. Đọc cách viết một câu trả lời hay . Ngoài ra, bạn nên bao gồm một số mã.
Jørgen R

Bạn có thể vui lòng cung cấp một đoạn trích
Sagar Devanga

Đây là những gì tôi đã làm và nó hoạt động hoàn hảo: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (tùy chọn, chức năng (...
Florida G.

1

Ngoài ra, API tương ứng phải được kích hoạt cho dự án nhất định

https://console.developers.google.com/apis/library?project=projectname tại đây


1

Đối với phiên bản mới nhất của API thì điều ngược lại dường như đúng với tôi.

Khi gọi url, https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>tôi gặp lỗi sau

Bạn phải sử dụng khóa API để xác thực từng yêu cầu đối với API nền tảng Google Maps. Để biết thêm thông tin, vui lòng tham khảo http://g.co/dev/maps-no-account

Sau khi tôi chuyển thứ tự sang https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>nó hoạt động tốt.

Lưu ý rằng thông báo lỗi nhận được ở trên là thông báo tôi nhận được khi truy cập trực tiếp vào URL trong trình duyệt. Khi tôi gọi API từ một chương trình phần mềm, tôi đã nhận được phản hồi HTML về cơ bản với thông báo sau:

Chúng tôi rất tiếc ... nhưng máy tính hoặc mạng của bạn có thể đang gửi các truy vấn tự động. Để bảo vệ người dùng của mình, chúng tôi không thể xử lý yêu cầu của bạn ngay bây giờ.


Vật lộn với điều này hàng giờ trước khi phát hiện ra rằng "dự án" mới hiện phải được liên kết với tài khoản thanh toán trên đám mây của Google để API Google ngừng đưa ra các lỗi chung chung khác nhau này. Ngưỡng có thể được đặt thành $ 0 để bạn sẽ không bao giờ bị tính phí nếu việc sử dụng vượt quá hạn ngạch cho phép.
Sparky


0

Xác thực, hạn ngạch, giá cả và chính sách Xác thực Để sử dụng API Chỉ đường, trước tiên bạn phải kích hoạt API và lấy thông tin xác thực thích hợp. Để biết thêm thông tin, hãy xem Bắt đầu với Nền tảng Google Maps.

Hạn ngạch và định giá Xem lại trang sử dụng và thanh toán để biết chi tiết về hạn ngạch và định giá cho API Chỉ đường.

Chính sách Việc sử dụng API Chỉ đường phải tuân theo chính sách API.

biết thêm: hãy truy cập: --- https://developers.google.com/maps/documentation/directions/start?hl=vi


-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

chỉ thêm trong AppDelegate như

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

và xóa khóa trong url này.

bây giờ url là

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving

-3

Tắt cả api hướng và api mã hóa địa lý rồi bật lại.

nó chỉ hoạt động trong 5-10 giây và tự động tắt.

nó có nghĩa là bạn chỉ có 5-10 giây để kiểm tra bài tập của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.