2014-10-11 2 views
0

저는 숙련 된 프로그래머가 아니며 처음으로 API를 가지고 놀고 있습니다. 따라서 지식 부족에 대해 사과하십시오. 귀하의 spotify 계정을 연결하고 EchoNest의 음악 API를 기반으로 트랙을 추천하는 웹 사이트를 만들려고합니다.호스트 서버에 Spotify API를 설정했습니다.

Spotify/FB 세부 정보를 연결하고 컴퓨터에 설치된 로컬 호스트를 통해 사이트에 인쇄하는 Spotify 자습서 (여기서는 https://developer.spotify.com/web-api/tutorial/#calling-the-spotify-accounts-service)를 따라했습니다. 내 초기 테스트는 정상적으로 작동하며 Spotify에서 세부 정보를 얻을 수 있으며 모든 것이 훌륭합니다.

그러나 리디렉션 URI를 내 서버 및 도메인 이름으로 변경하면 전체 프로세스가 실패합니다. 내 Spotify 개발자 정보를 수정하여 실제 웹 서버로 업데이트했습니다.

원래 (spothost에서 가져옴) (localhost : 8888)이 내 홈페이지를 호출 한 다음 (localhost : 8888/login) Spotify 로그인 페이지로 연결 한 다음 자동 (localhost : 8888/callback)을 귀하의 사이트에 보냈습니다.

그러나 localhost8888 (관심이있는 사용자는 jumpmyjukebox.com) 대신 내 도메인을 포함하도록 편집 된 스크립트를 사용하여 웹 서버에 파일을 업로드하면/login 페이지에 대한 페이지를 찾을 수 없다는 오류 메시지가 표시됩니다. 프로세스의 시작

/login에 대한 페이지를 수동으로 설정해야합니까, 아니면 핵심 요소가 누락 되었습니까?

내가 얻어 편집 한 파일

현재 위치 : 나는 상대적으로 내가 일 때문에 이것에 전혀 가르침을 했어 켜져있어 /하지만로서 도움이 될 수있는 사람을 위해 ( https://github.com/spotify/web-api-auth-examples)

감사하는 많은 사람들에게 '명백한'것처럼 보입니다.

답변

1

귀하의 사이트를 확인한 결과 "Spotify로 로그인"링크를 클릭하여 jumpmyjukebox.com/login으로 이동하면 404 (Not Found) 오류가 발생했습니다. 이것은/login 경로가 웹 서버에 의해 처리되지 않기 때문에 발생합니다.

spotify-web-api-auth-examples/authorization_code/app.js에서 실행되는 코드는/login에 대한 요청을 수신하고 사용자를 Spotify 사이트의 URL로 리디렉션합니다.

이것은 app.js 처리/로그인의 코드입니다. 당신이 볼 수 있듯이 사람/로그인을 요청하는 경우

app.get('/login', function(req, res) { 

    var state = generateRandomString(16); 
    res.cookie(stateKey, state); 

    // your application requests authorization 
    var scope = 'user-read-private user-read-email'; 
    res.redirect('https://accounts.spotify.com/authorize?' + 
    querystring.stringify({ 
     response_type: 'code', 
     client_id: client_id, 
     scope: scope, 
     redirect_uri: redirect_uri, 
     state: state 
    })); 
}); 

는, 그들은 단순히 https://accounts.spotify.com/authorize로 리디렉션하고 있습니다. URL에 몇 가지 쿼리 매개 변수가 추가됩니다 (앱에서 작동해야하는 리디렉션 URI 포함). 사용자가 자격 증명을 입력하고 응용 프로그램의 범위를 승인하면 응용 프로그램의 설정된 리디렉션 URI로 다시 리디렉션됩니다.

서버의 app.js에서 코드를 실행하지 않는 것처럼 보입니다. 물론 원하는 것은 아닙니다. 원하는 언어와 프레임 워크로 원하는 코드를 사용할 수 있습니다. 그러나 다른 것을 실행중인 경우 예제와 동일한 기능을 사용하려면 서버에서/login을 처리해야합니다.

+0

감사합니다. Michael. 나를 위해 그것을 지웠다. 필자는 선호한다면 app.js를 통해 API를 호출하는 현재의 방식을 고수하고 싶습니다. 서버가 파일을 전혀 인식하지 못하는 것 같아서 이에 관해서 연락을했습니다. 내가 언어를 바꿀 수 있다면 나는 무엇을 추천 했습니까? –

+0

문제가 없습니다. 플랫폼에서도 작업하므로 설치 또는 작업하기 어려운 것에 대한 의견을 보내 주시면 감사하겠습니다. JavaScript가 마음에 드시면 Express with Node를 실행하는 것이 좋습니다.이 경우, 예제 응용 프로그램은 서버에서 즉시 작동해야합니다. "서버가 파일을 전혀 인식하지 못한다"는 것이 무슨 뜻인지 잘 모르겠습니다. 서버에 Node가있는 app.js를 시작 하시겠습니까? –

+0

파일을 업로드하는 것 외에는 서버에 아무 것도 설치하지 않았습니다 ... 서버에 노드를 설치할 필요가 없다는 것을 알았습니까? 이 작업을 수행해야한다면 서버에 노드를 설치하는 방법은 무엇입니까? '스크립트 실행'을 텍스트로 게시해야하는 스크립트를 확인하기 위해 테스트 명령을 입력 했으므로 app.js가 실행되고 있지 않습니다. 아무 것도 나타나지 않았습니다. –

관련 문제