API của Google: Không phải là nguồn gốc hợp lệ cho ứng dụng khách: url chưa được đưa vào danh sách trắng cho ID khách hàng "ID"


95

Tôi cần giúp đỡ. Tôi không tìm thấy câu trả lời cho câu hỏi của mình. Tôi đã thử googling và tôi đã thử hỏi ở các phía khác nhưng tôi không bao giờ tìm thấy câu trả lời.

Tôi đang làm việc với API google (API dữ liệu Youtube) và tôi sử dụng mã ví dụ từ phía google, mã hoạt động của nó Tôi khá chắc chắn về điều đó. Tôi gặp lỗi khi cố gắng khởi động Tập lệnh:

chi tiết: "Không phải nguồn gốc hợp lệ cho ứng dụng khách:" MyURL "chưa được đưa vào danh sách trắng cho ID khách hàng" MyID ". Vui lòng truy cập https://console.developers.google.com/ và đưa nguồn gốc này vào danh sách trắng cho ID khách hàng của dự án của bạn. "

error: "idpiframe_initialization_failed"

Vấn đề tôi đã đưa Trang web của mình vào danh sách trắng và nó đã được chấp nhận. Tôi không biết điều gì là sai. Tôi nên làm gì để "đưa vào danh sách trắng" Miền của mình (Nó được đưa vào danh sách trắng)

Và một câu hỏi khác. Tôi đã không tìm kiếm câu trả lời cho câu hỏi này trước đây.

Tôi nghĩ rằng có thể tôi có thể sử dụng mã trên Localhost, tôi nghĩ rằng tôi phải đưa địa chỉ localhost của mình vào danh sách trắng hoặc những thứ tương tự như thế này. Nhưng danh sách trắng không hoạt động.

  • DreamGamer

2
Vẫn phải đối mặt với cùng một vấn đề. Có ai có giải pháp nào khác để giải quyết vấn đề này không?
Yashu Mittal 18/02/18

trong trường hợp của tôi, việc sử dụng httpgây ra sự cố. chuyển sang httpsgiải quyết vấn đề.
Xiao

1
Đối với những người đã thêm miền trong các miền được ủy quyền, chỉ cần xóa bộ nhớ cache của trang web của bạn, nó sẽ hoạt động chắc chắn nếu tất cả dữ liệu được thiết lập thực sự.
Haritsinh Gohil

Câu trả lời:


76

Gặp vấn đề tương tự và đây là cách tôi giải quyết nó:

  1. Kích hoạt cả API Analytics và Google Plus trong dự án của bạn
  2. Tạo thông tin xác thực ứng dụng khách OAUTH 2.0 mới
    • Thêm Nguồn gốc Javascript được ủy quyền trong phần Hạn chế
  3. Sử dụng id khách hàng mới.

Thưởng thức.


OMG Cảm ơn bạn rất nhiều! Nó làm việc cho tôi. Một trong những vấn đề của tôi là tôi đã sử dụng khóa khách hàng không phải là id khách hàng.
DreamGamer

4
Tôi nên làm rõ rằng NẾU bạn đã tạo oAuth cho một cổng khác; vì một số lý do, bạn không thể chỉnh sửa lại cổng để sử dụng một cổng khác. Về cơ bản, tôi đã "tạo một thông tin xác thực khác" cho cổng mới. Rõ ràng, điều này sẽ tạo ra một mã thông báo khác; vì vậy chỉ cần lấy nó và sử dụng nó thay thế. Bạn có thể giữ cả hai mã thông báo trong Bảng điều khiển.
Sam3k

Cảm ơn! Nó phản trực quan, nhưng đó là câu trả lời đúng. Khá điên rồ khi bạn không thể chỉ thêm API bạn cần (cũng không rõ ràng) vào khóa hiện có của bạn. Việc tạo lại toàn bộ cấu hình cho khóa là một điều khó khăn.
beachCode

Bạn đang nói để kích hoạt API của Googe Plus. Nhưng mối quan hệ giữa API của Youtube và API của Google Plus là gì.
Yashu Mittal 17/02/18

Tôi không thực sự hiểu mối tương quan ở đây nhưng đó là điều duy nhất phù hợp với tôi (và những người khác, dường như).
Ezra Obiwale

199

Tôi đã xóa bộ nhớ cache. Bắt đầu làm việc sau đó.

Trong Chrome: Cài đặt -> Nâng cao -> Xóa dữ liệu duyệt web -> Hình ảnh và tệp được lưu vào bộ nhớ đệm


1
Cảm ơn bạn, tôi đã làm mọi thứ đúng và tôi đã gặp rắc rối.
cura

2
Điều này đã hiệu quả với tôi khi sử dụng đăng nhập Google cho ứng dụng web của tôi. Cảm ơn!
Sahil Lakhwani

1
Tôi đã bỏ phiếu tán bạn một lần khi điều này xảy ra với tôi cách đây vài tháng, nhưng bạn xứng đáng khác ... 1
howMuchCheeseIsTooMuchCheese

1
Câu trả lời này đã không giúp tôi.
tishma

2
Có rất nhiều yêu cầu đang diễn ra. Tôi nghĩ rằng một trong số chúng đang được trình duyệt lưu vào bộ nhớ cache và vì vậy nó không biết về những thay đổi bạn thực hiện trong Bảng điều khiển API. Nhưng tôi nghĩ sẽ dễ dàng hơn để vô hiệu hóa hoàn toàn bộ nhớ cache trong khi Công cụ phát triển trình duyệt đang mở. Hầu hết thời gian có một tùy chọn (hộp kiểm) trong tab "mạng". Sau khi cho phép làm mới trang là đủ để làm cho nó hoạt động.
Andreas Linnert

16

Xóa bộ nhớ cache đã thực hiện thủ thuật cho tôi


3
một khi bạn làm điều này, không quên để đăng nhập một lần nữa để stackoverflow upvote
Anand Rockzz

8

Hãy thử Xóa bộ nhớ cache, nó có thể là vấn đề với bộ nhớ cache / lưu trữ cục bộ.


7

Đối với tôi, nó hoạt động mà không cần thêm bất kỳ API bổ sung nào như google analytics. Chỉ cần đảm bảo thêm clientid hoàn chỉnh và mở ứng dụng trong cửa sổ ẩn danh để tránh lưu bộ nhớ cache. Nếu đã mở ứng dụng trong cửa sổ thông thường, 1- Đóng tất cả các tab mà ứng dụng đang mở. 2- Xóa bộ nhớ cache và cookie. Trong chrome, trong Cài đặt -> Mật khẩu và biểu mẫu -> Xóa dữ liệu Duyệt web -> Nâng cao (tab) -> chọn a) Cookie và dữ liệu trang web khác và b) Hình ảnh và tệp được lưu trong bộ nhớ cache 3- Mở cửa sổ ẩn danh mới và kiểm tra ứng dụng.


2
Không cần đóng tất cả các thẻ, chỉ cần mở cửa sổ ẩn danh là đủ.
Bert Verhees

3

Tài liệu nói rằng không được bỏ qua hai bước quan trọng ("Khi bạn xem qua các hướng dẫn, điều quan trọng là bạn không được bỏ qua hai bước quan trọng này: Bật API Analytics Đây là những gì đã làm việc cho tôi:

  1. Bật API Analytics
  2. trả lại cho bạn thông tin đăng nhập, xóa OAuth 2.0 trước đó
  3. bây giờ hãy tạo OAuth mới với nguồn gốc chính xác

2

Tôi cũng đã làm theo hướng dẫn trong ví dụ khởi động nhanh, Gặp vấn đề tương tự, đã thử tất cả các giải pháp được đề xuất ở đây nhưng không có kết quả, đã thử mọi thứ tôi có thể tưởng tượng nhưng không giúp được gì.

Cuối cùng thấy rằng tôi đã sao chép CLIENT_IDvới một khoảng trắng ở cuối.

  var CLIENT_ID = '44********-*****************.apps.googleusercontent.com ';

Khi tôi đã sửa lỗi này (loại bỏ không gian thừa), nó đã hoạt động.

Tôi đoán thông báo lỗi không chính xác lắm trong trường hợp này. Hi vọng điêu nay co ich.


2

Tôi vừa mắc lỗi tương tự: Đã thử ví dụ khởi động nhanh chính thức và nhận được thông báo lỗi giống như bạn.

Nó khá khó hiểu, bởi vì ví dụ đó phức tạp hơn rất nhiều so với những gì cá nhân tôi cần: Nó sử dụng OAuth để đăng nhập của người dùng, chứ KHÔNG chỉ API key. Nếu bạn giống tôi và bạn không muốn sử dụng OAuth và bạn chỉ muốn truy xuất một số dữ liệu Youtube mà không có bất kỳ hành động đặc quyền nào (ví dụ: nếu bạn chỉ muốn tìm kiếm hoặc liệt kê video, kênh hoặc danh sách phát), ví dụ này là cho bạn.

Giải pháp rất đơn giản, chỉ cần cung cấp apiKeythay vì clientIdđến gapi.client.init(liên kết: tài liệu API ), như sau:

const apiKey = '<my API key>';

function gooApiInitClient() {
  // Array of API discovery doc URLs for APIs used by the quickstart
  const discoveryDocs = [
    "https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"
  ];

  return gapi.client.init({
    apiKey,
    discoveryDocs
  });
}

// see: https://developers.google.com/api-client-library/javascript/reference/referencedocs
gapi.load('client', {
  callback: function() {
    // we now have gapi.client! initialize it.
    gooApiInitClient().
      then(() => {
        // we can start using the API here!
        // e.g. gapi.client.youtube.videos.list(...);
      }).then(results => { 
        // use results here....
      });
  }
});

2
Tôi khuyên bạn nên đơn giản hóa đoạn mã để làm cho câu trả lời này tốt hơn. Cuộc gọi init chỉ có 4 dòng và đó thực sự là điều duy nhất đang thay đổi. Những thứ khác không hữu ích.
Charlie

Làm rõ nó lên một chút :)
Domi

2

Tôi cũng đang cố gắng làm cho mẫu hoạt động (từ) https://developers.google.com/drive/api/v3/quickstart/js

Nó liên tục không thành công mặc dù địa chỉ ip đã được thêm vào WebAPI.

Nhưng bạn phải thêm localhost: 8000 (không chỉ 127.0.0.1:8000) vào OAUTH của bạn như được hiển thị ở đây:

Khách hàng OAUTH

Nổi trên văn bản ứng dụng khách OAUTH và nó sẽ trở thành một liên kết. Nhấp vào liên kết đó và bạn có thể thêm một URI bao gồm cả cổng. Của tôi đã có 127.0.0.1:8000 nhưng không phải locahost: 8000.

locahost: 8000

Đây là điều thú vị / kỳ lạ. Khi tôi ping localhost, tôi thấy:

IPV6

Tôi nghĩ rằng đó là điều IPV6.

Dù sao, nếu tôi ping 127.0.0.1, tôi thấy phản hồi mong đợi (qua IPV4)

IPV4

Có thể đó là một con cá trích đỏ nhưng tôi không chắc liệu giá trị được nhập vào OAUTH có bị ảnh hưởng bởi nó hay không.

Lý do tôi thậm chí nhận thấy điều đó là vì khi tôi khởi động máy chủ web Python theo chỉ dẫn trong hướng dẫn, tôi đã thấy những điều sau và nghĩ rằng nó thật kỳ quặc: địa chỉ ip python

Chỉ sau khi thêm localhost: 8000 URI trong OAUTH thì nó mới hoạt động, nhưng sau khi thêm nó hoạt động tốt.


2

Như nhiều người đã chỉ ra ở đây, đây chỉ là vấn đề về bộ nhớ đệm của trình duyệt. Không cần tạo khóa mới hoặc thậm chí xóa bộ nhớ cache. Chỉ cần thử lại trên một cửa sổ ẩn danh (ẩn danh) của trình duyệt mới và nó sẽ hoạt động tốt.


1

Tôi đã gặp sự cố tương tự khi cố gắng đăng nhập cho ứng dụng web của mình. Những gì tôi đã làm chỉ là tạo lại thông tin xác thực ID ứng dụng khách OAuth từ Nền tảng đám mây. Khi tôi làm điều này và sử dụng ID khách hàng mới, mọi thứ đều hoạt động tốt. Không chắc vấn đề trước đây là gì, nhưng hiện tại nó đã hoàn toàn ổn.

Nếu bất kỳ ai tìm thấy điều này từ Google hoặc không có gì, hãy thử điều đó. Nó có thể hoạt động. Nó sẽ giải thích câu trả lời của Ezra Obiwale vì điều đó về cơ bản là tạo một ID khách hàng mới ngay sau khi thêm một vài API.

Nếu bất cứ ai biết một lời giải thích tại sao điều này xảy ra sẽ được đánh giá cao.


0

Tôi cũng gặp phải vấn đề tương tự - giải pháp cho tôi là truy cập Trình quản lý API và bật API Analytics. Không chắc vấn đề là gì, nhưng điều này dường như đã được khắc phục!


1
Tôi đã bật API Analytics nhưng không có gì thay đổi. : C
DreamGamer

0

Tôi tin rằng điều này liên quan đến bộ nhớ đệm, hãy thử Đi tới trình duyệt của bạn và xóa bộ nhớ cache, thử: trong chrome,> cài đặt> nâng cao> xóa dữ liệu duyệt web:>: hình ảnh và tệp được lưu trong bộ nhớ cache.


0

Một trong những lý do tại sao nó không thể hoạt động là vượt quá số lượng (100) lần đăng nhập nhất định client ID.

Bạn có thể truy cập trang bảng điều khiển API của Google và tạo bằng chứng xác thực ứng dụng khách Oauth2 mới (nhớ thêm URL ứng dụng của bạn bên dưới Authorized Javascript Origins) và sau đó sử dụng nó.


0

Tôi cũng gặp phải các vấn đề tương tự cho đến khi tôi nhận ra khi tôi sao chép client_ID, có khoảng trắng trong tệp của tôi, vì vậy tôi đã xóa khoảng trắng khỏi chuỗi và mọi thứ hiện đang hoạt động tốt.


0

Tôi gặp phải vấn đề tương tự khi làm việc với đăng nhập bằng google bằng đăng nhập react-social-login trên máy chủ cục bộ của mình. Trong nguồn gốc danh sách trắng, chúng tôi sẽ phải cung cấp http: // localhost: 3000 để nó hoạt động.

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.