Khóa API Googlemaps cho Localhost


91

Làm cách nào để lấy khóa api của googlemaps để hoạt động trên localhost?

Tôi đã tạo một khóa API và trong phần giới thiệu, tôi thêm những thứ sau:

Accept requests from these HTTP referrers (websites) (Optional)

Use asterisks for wildcards. If you leave this blank, requests will be 
accepted from any referrer. Be sure to add referrers before using this key 
in production. 

localhost

Điều này không hoạt động và nếu tôi loại trừ khóa api thì nó cũng không hoạt động?


Câu trả lời:


130
  1. Truy cập địa chỉ này: https://console.developers.google.com/apis
  2. Tạo khóa API cho dự án của bạn
  3. Nhấp vào "Thư viện"
  4. Nhấp vào bất kỳ API nào bạn muốn
  5. Nhấp vào "Bật" (trên cùng bên phải)
  6. Nhấp vào "Thông tin đăng nhập"> "Chỉnh sửa khóa"
  7. Trong "Hạn chế khóa", hãy chọn "Liên kết giới thiệu HTTP (trang web)"
  8. Nhập địa chỉ trang web của bạn (hoặc "localhost", "127.0.0.1", "localhost: port", v.v. để kiểm tra cục bộ) vào trường văn bản và nhấn ENTERđể thêm nó vào danh sách
  9. Sử dụng chìa khóa của bạn trong dự án của bạn

8
Đây là những gì tôi đã làm, nhưng tôi tự hỏi: điều này có nghĩa là BẤT CỨ AI làm việc cục bộ (localhost / 127.0.0.1) có thể sử dụng API KEY của tôi (và có thể suy ra chi phí cho tôi sau khi giá mới vào ngày 6 tháng 11 năm 2018 diễn ra ?)
tmanolatos

31
@tmanolatos Vâng, đó là ý nghĩa của nó. Việc cấp quyền cho localhost cho khóa sản xuất của bạn là không tốt, vì bất kỳ ai cũng có thể sử dụng khóa của bạn khi đang chạy cục bộ. Thay vào đó, bạn nên duy trì hai chìa khóa. Một cho sản xuất mà bất kỳ ai cũng có thể nhìn thấy và do đó chỉ được phép trên miền của bạn. Một cho sự phát triển nên được coi là thông tin xác thực (không chia sẻ nó) và cho phép truy cập từ localhost.
the_cheff

2
@tmanolatos Có, nhưng bạn phải xây dựng hai chìa khóa, một để ứng dụng thử nghiệm, và một cho các ứng dụng chính,
mirzaei.sajad

Tôi nhận được phản hồi này sau khi làm theo các bước ở trên: {"error_message": "Không thể sử dụng khóa API có giới hạn giới thiệu với API này.", "Results": [], "status": "REQUEST_DENIED"} Đây là URL , trong đó DEV_KEY được thay thế bằng khóa api của tôi: maps.googleapis.com/maps/api/geocode/…
rmutalik

Nó trả về JSON chính xác khi tôi sử dụng khóa api PROD_KEY của mình.
rmutalik

10

Bạn có thể làm theo cách này. Nó hoạt động ít nhất đối với tôi:

trong trang Thông tin xác thực:

  1. Chọn tùy chọn với địa chỉ IP (tùy chọn số 3).

  2. Đặt địa chỉ IP của bạn từ nhà cung cấp của bạn. Nếu không, hãy tìm kiếm địa chỉ IP của bạn bằng cách sử dụng liên kết này: https://www.google.com/search?q=my+ip

  3. Lưu nó.

  4. Thay đổi liên kết bản đồ google của bạn như sau giữa thẻ scrip:

    https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzxxxxxxxx "

  5. Chờ khoảng 5 phút trở lên để khóa API của bạn phổ biến.

Bây giờ bản đồ google của bạn sẽ hoạt động.


9

Nếu bạn đang làm việc trên localhost, hãy tạo một khóa API riêng cho sự phát triển của bạn và sau đó xóa các hạn chế trên khóa đó để localhost của bạn có thể sử dụng nó. Hãy nhớ không sử dụng khóa này khi sản xuất, vì vậy bạn sẽ không để lộ khóa của mình cho những kẻ săn tìm trực tuyến.

Tôi gặp vấn đề tương tự và tất cả các nỗ lực để có được các hạn chế hoạt động trên môi trường localhost của tôi đều không thành công cho đến khi tôi tạo một apikey riêng biệt dành riêng cho việc phát triển và sau đó loại bỏ các hạn chế của nó. Tuy nhiên, tôi không sử dụng khóa đó trên môi trường sản xuất và sau khi hoàn thành các bước phát triển, tôi sẽ xóa khóa API ngay lập tức.

Tôi biết bài đăng này là muộn, nhưng đối với những người có khả năng gặp phải vấn đề này trong tương lai, đây là con đường tốt nhất để đi.


5

Đoán là tôi đến bữa tiệc hơi muộn và mặc dù tôi đồng ý rằng việc tạo một khóa riêng biệt cho phát triển (localhost) và sản phẩm, nhưng có thể thực hiện cả hai chỉ trong 1 khóa.

Khi bạn sử dụng Hạn chế ứng dụng -> Trình giới thiệu http -> Yêu cầu lại trang web, bạn có thể nhập url ký tự đại diện.

Tuy nhiên sử dụng ký tự đại diện như .localhost / hoặc là .localhost: {port}. (khi đã có .yourwebsite.com / * ) dường như không hoạt động.

Chỉ đặt một * duy nhất cũng hoạt động nhưng điều này về cơ bản cung cấp cho bạn một khóa không giới hạn, điều này không phải là những gì bạn muốn.

Khi bạn bao gồm đường dẫn đầy đủ mà không sử dụng ký tự đại diện * nó cũng hoạt động, vì vậy trong trường hợp của tôi, đặt:

http: // localhost {port} /
http: // localhost : {port} / something-else / here

Làm cho bản đồ của Google hoạt động cục bộ như trên www.yourwebsite.com bằng cách sử dụng cùng một khóa API.

Dù sao khi có 2 phím riêng biệt cũng là một lựa chọn tôi khuyên bạn nên làm điều đó.


1

Bạn có thể làm theo hướng dẫn này về cách sử dụng Google Maps để thử nghiệm trên localhost.

Kiểm tra các chuỗi SO liên quan sau:

Hi vọng điêu nay co ich!


2
liên kết bị hỏng bị hỏng
Rafael Herscovici, 09/05


@AEGrey - không phải cho tôi, cho những người dùng trong tương lai.
Rafael Herscovici

1

Bạn phải kiểm tra lỗi cụ thể trong bảng điều khiển javascript (ví dụ: Ctrl+ Shift+ Ktrong Firefox dành cho Windows).

Theo Steven Gliebe (2016) , có bốn trường hợp phổ biến cho vấn đề này. Nếu tôi có thể tóm tắt nó, như sau:

  1. MissingKeyMapError >> Nhận Khóa API của Google Maps (nhưng cũng nên xem xét thay thế số 2)
  2. RefererNotAllowedMapError >> Đăng ký localhost: port của bạn trong bảng điều khiển nhà phát triển google của bạn .
  3. ApiNotActiisedMapError >> Bật API Google Maps trong trang Thư viện API của Google
  4. InvalidKeyMapError >> Thêm khóa của bạn vào các tập lệnh / mã của bạn đúng cách

Sau khi thực hiện một số sửa đổi mã, vui lòng xóa bộ nhớ cache của trình duyệt nếu cần.

Trong trường hợp có các lỗi khác, bạn có thể kiểm tra trang Tài liệu về Mã lỗi API của Google Maps .


0

Khi nó cho biết "Chấp nhận yêu cầu từ các liên kết giới thiệu HTTP này (trang web) (Tùy chọn)", bạn không cần phải liệt kê bất kỳ liên kết giới thiệu nào. Vì vậy, hãy nhấp vào X bên cạnh localhost trên trang này nhưng tiếp tục sử dụng khóa của bạn.

Sau đó, nó sẽ hoạt động sau một vài phút.

Các thay đổi đã thực hiện đôi khi có thể mất vài phút để có hiệu lực, vì vậy hãy đợi vài phút trước khi kiểm tra lại.


0

Gõ 'my IP' trong tìm kiếm của google, tôi đã nhận được địa chỉ IP công cộng của mình và dán nó vào địa chỉ IP (tùy chọn thứ ba). Nó làm việc cho tôi.


0

Gõ 'my IP' trong tìm kiếm của google, tôi đã nhận được địa chỉ IP công cộng của mình và dán nó vào địa chỉ IP (tùy chọn thứ ba). Nó làm việc cho tôi.

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.