크롬 익스텐션(공식 튜토리얼에 따라 제작)이 작동하지 않음
https://developer.chrome.com/extensions/getstarted
이 튜토리얼은 여전히 괜찮은가요?언급된 파일을 모두 다운로드했는데 확장이 작동하지 않습니다.Ajax 요청과 관련하여 문제가 있는 것 같습니다.
메시지를 받았습니다.
이미지를 표시할 수 없습니다.Google 이미지에서 응답이 없습니다.
다른 웹 사이트에 Ajax 요청을 수행하려고 했지만, menifest.json 파일의 권한에도 불구하고 요청이 로컬로 수행되는 것으로 나타났습니다.
이 예에서는 60행의 팝업.js 내부에서 https://ajax.googleapis.com/ajax/services/search/images 로 전화가 걸려옵니다.이제 만료되었습니다.
쿼리 인수를 제공하여 확인할 수 있습니다.예를 들어, https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=chrome 은 "이 API는 더 이상 사용할 수 없습니다."라는 응답을 제공합니다.
이 포럼에서는 대체 검색 API 목록에 대해 설명합니다.https://groups.google.com/forum/ #!topic/Google-AJAX-Search-API/Ao9TbQbYgHo
네, 그럼 아직 고장이 났군요.Googleapis(UberHans에서 게시한 대안에서 참조)와 함께 작동하기 위해 팝업.js 파일(아래 링크)을 패치했습니다.나는 변경된 PR에 대한 출처 보고서를 찾으려고 했지만, 그런 행운은 없었습니다.
팝업.js에서는 cx 및 api 키를 추가해야 합니다.당신이 코드를 읽는다면, 당신이 변경해야 할 것과 필요한 cx와 api 키를 얻는 방법이 꽤 분명할 것입니다.
업데이트: 도움이 된다면, 여기 구글이 제공하는 것과 샘플을 작동시키기 위해 수행한 작업 사이의 차이점이 있습니다(cx 및 키 변수는 유효한 cx 및 키로 업데이트되어야 작동함).
59,61c59,66
< // https://developers.google.com/image-search/
< var searchUrl = 'https://ajax.googleapis.com/ajax/services/search/images' +
< '?v=1.0&q=' + encodeURIComponent(searchTerm);
---
> // https://developers.google.com/custom-search/json-api/v1/using_rest
> var cx = 'insert-your-cx-from:https://cse.google.com'
> // WARNING: Hard-coding your api key in code is really insecure
> var key = 'insert-your-key-from:https://console.developers.google.com'
> var searchUrl = 'https://www.googleapis.com/customsearch/v1?searchType=image'
> + '&cx=' + encodeURIComponent(cx)
> + '&key=' + encodeURIComponent(key)
> + '&q=' + encodeURIComponent(searchTerm);
69,72c74,76
< if (!response || !response.responseData || !response.responseData.results ||
< response.responseData.results.length === 0) {
< errorCallback('No response from Google Image search!');
< return;
---
> if (!response || !response.items || !response.items.length) {
> errorCallback('No response from Google Image search')
> return;
74c78
< var firstResult = response.responseData.results[0];
---
> var firstResult = response.items[0];
77,79c81,83
< var imageUrl = firstResult.tbUrl;
< var width = parseInt(firstResult.tbWidth);
< var height = parseInt(firstResult.tbHeight);
---
> var imageUrl = firstResult.image.thumbnailLink;
> var width = parseInt(firstResult.image.thumbnailWidth);
> var height = parseInt(firstResult.image.thumbnailHeight);
해당 특정 기능을 원하지 않는 한 다른 샘플을 사용해 볼 수 있습니다.
https://developer.chrome.com/extensions/samples
같은 생각입니다.
언급URL : https://stackoverflow.com/questions/34037689/chrome-extension-made-according-to-official-tutorial-not-working
'sourcecode' 카테고리의 다른 글
비활성화되지 않은 경우에만 호버 및 활성화 (0) | 2023.08.26 |
---|---|
Linux에서 입력 파일을 사용하여 여러 행을 업데이트하는 Mysql 쿼리 (0) | 2023.08.26 |
메서드 setDrawerListener가 더 이상 사용되지 않습니다. (0) | 2023.08.26 |
java.util용 Spring JavaConfig.속성 필드 (0) | 2023.08.26 |
Zend Framework 1과 Zend Framework 2의 성능 비교 (0) | 2023.08.26 |