mailChimp를 통해 리액션 비즈니스api(오픈 비즈니스)에 설정, 배치 및 연결하는 방법


본고에서 나는 어떻게 원격 vps에 반응 비즈니스를 배치하는지 묘사할 것이다.reaction commerce 문서는 로컬 환경에 응용 프로그램을 배치하는 방법을 설명합니다.
reaction commerce 문서는 어떤 작업을 수행하는지 잘 설명할 수 없습니다. 따라서 이 문서는 몇 가지 문제를 설명하고 프로젝트를 계속하는 데 도움을 줄 수 있기를 바랍니다.

뭘 드시겠어요?
부두 노동자
  • Docker compose
  • 제조 유틸리티

  • 클론 항목
    git clone https://github.com/reactioncommerce/reaction-development-platform.git
    cd reaction-development-platform
    make
    
    make 명령을 처음 실행하면 다음 github repo를 다운로드합니다
  • 반응 API-https://github.com/reactioncommerce/reaction.git
  • 리액션 관리자 - https://github.com/reactioncommerce/reaction-admin
  • 예제 매장 앞 https://github.com/reactioncommerce/example-storefront.git
  • A mongo db 데이터베이스
  • 다운로드 후 reaction development platform 디렉터리에 가게,reaction,reaction admin의 새 디렉터리를 만듭니다
    응용 프로그램이 에서 실행됩니다.

  • http://localhost:4000 - 가게

  • http://localhost:4080 - 반응 관리자

  • http://localhost:3000/graphql - 반응api

  • 원격 배포 설정
    로컬 호스트가 아닌 원격 환경에서 이 프로그램을 실행할 것이기 때문에 개발자 플러그인 디렉터리에서makestop을 실행해서 docker 용기를 우아하게 멈춰야 합니다.
    현재
    docker rm -f $(docker ps -a -q)
    
    이것은 모든 용기와 환경 변수를 삭제합니다. 원격 배치에 반응을 설정하기를 희망합니다.
    다음 디렉토리로 이동하여 경로를 http://localhost:____에서 VP의 IP 주소(예: http://123.11.23.32:___)로 변경합니다.
  • 반응/.환경
  • 반응/.환경예
  • 반응 관리자/.환경
  • 반응 관리자/.환경예
  • reaction admin/imports/plugins/core/core/server/config.js
  • 예제 매장/.환경
  • 예제 매장/.환경예
  • 예제 매장/구성js
  • 이 프로그램들을 변경한 후 개발 플랫폼 디렉터리로 돌아가make 명령을 실행합니다.
    이것은 docker 용기에 적당한 환경 변수를 제공하여reaction commerce가 원격으로 정상적으로 작동할 수 있도록 합니다.
    상기 절차에 따라 프로그램을 원격으로 실행하지 않으면 프로그램이 http://localhost에서 자원을 찾을 것이며 로컬 환경에 없기 때문에 실패할 것입니다.
    이것은 계정을 만들고 포트 4080에서 반응 관리자에게 로그인할 수 없다는 것을 의미합니다.

    반응 비즈니스 플랫폼 테스트 API 요청을 사용하는 방법
    반응 비즈니스 플랫폼은graphql과 함께 사용되며, 화면 한쪽에서graphql API가 처리할 수 있는 명령을 지도하는 문서와 모드를 볼 수 있습니다.
    당신은 완전한 반응 비즈니스 문서 here을 볼 수 있습니다.명령을 http://your_ip_address:4080/graphql으로 복사하여 붙여넣기만 하면 됩니다.
    비즈니스 플랫폼의 일부graphql 조회에서 조회 파라미터를 보내달라고 요청하면 화면 왼쪽 아래에 있는 '조회 변수' 에서 찾을 수 있습니다.
    그 옆에는 HTTP 헤드가 있습니다.방문 거부 메시지가 아닌 리액션api에 권한 수여 영패를 전달해야 합니다.
    당신의 놀이공원이 잘 돌아가는지 시험하려면 아래의 내용을 입력하십시오
    query ping {
        ping
    }
    
    답은 아마...
    {
       "ping": "pong"
    }
    
    이것은 당신의 배치가 정상적임을 나타낸다.

    비즈니스 응답을 위한 액세스 토큰을 획득하여 API 요청을 보내는 방법
    현재 놀이공원 설정이 되어 있습니다. 방문을 거부하지 않는 상황에서 리액션 비즈니스graphql API 포트에 원격으로 요청을 보내는 방법은 무엇입니까?
    방문 영패를 얻는 데는 기본적으로 두 가지 방법이 있다.
  • Hydra 토큰을 사용하여
  • 액세스 토큰을 생성
  • graphql 놀이공원에서 영패 생성

  • Hydra 토큰을 사용하여 액세스 토큰을 생성합니다.
    이를 실현하는 과정은 상업hydra token github repo-https://github.com/reactioncommerce/hydra-token에 기술되어 있다.
    나는 이런 방법을 실현하려고 시도했지만 성공하지 못했다.따라서, 당신은 그것을 볼 수 있지만, 본고에서 말한 바와 같이,reaction commerce 프로그램은 그렇게 좋은 문서 기록이 없습니다.
    hydra token cli를 사용하여 유효한 권한 수여 영패를 생성하는 데 성공하면 댓글에 공유해 주십시오.

    graphql에서 접근 영패 생성
    기호화폐를 생성하기 전에 http://your_ip_address:4080의 반응 관리자에게 계정을 등록하고 상점을 만들어야 합니다.
    이 계정을 만들 때 사용하는 전자 우편과 비밀번호를 기억하십시오.
    다음에 상점을 하나 만들겠습니다.
    점포를 창설한 후 비밀번호를 위해 해시를 생성해야 한다.이것은 방문 영패를 가져오는 데 사용됩니다.
    이를 위해, 나는 새로운 노드 프로그램을 만들고,crypto js 패키지를 설치했다
    npm init -y
    npm install crypto-js
    
    완성된 후에 색인을 만들었습니다.js 파일, 그리고 다음 코드를 작성하여 나의 반응 관리자 비밀번호를 생성하는 해시 버전
    const { SHA256 } = require('crypto-js');
    
    const hashedPassword = SHA256("myRawReactionAdminPassword");
    console.log(hashedPassword.toString());
    
    이 줄을 쓴 후 파일을 저장하고 다음 명령을 실행하여 프로그램을 실행합니다
    node index.js
    
    노드 프로그램을 실행할 것입니다. 해시 버전의 비밀번호를 얻을 것입니다. 현재 반응장에서 이 비밀번호를 사용하면 방문 영패를 얻을 수 있습니다.
    502913bfdd49eab564282dff101e6d167321237eeec66eedb2a438ed80fdeaa0
    
    그렇다면 어떻게 반응상무수권/방문영패를 얻습니까?
    우선 리액션 비즈니스graphql 놀이공원으로 이동:
    http://your_ip_address:3000/graphql
    그런 다음 다음 다음 복사하여 붙여넣습니다.
    mutation authenticate(
      $serviceName: String!
      $params: AuthenticateParamsInput!
    ) {
      authenticate(serviceName: $serviceName, params: $params) {
        sessionId
        tokens {
          refreshToken
          accessToken
        }
        user {
          ...userFields
        }
      }
    }
    fragment userFields on User {
      id
      emails {
        address
        verified
      }
      username
    }
    
    
    셋째, 다음 내용을 조회 변수로 복사하고 붙여넣는다.전자상거래 관리자 전자상거래 및 해시 비밀번호로 전자상거래 및 비밀번호 값을 바꿔야 합니다.
    {
      "serviceName": "password", 
      "params": {
         "password": "502913bfdd49eab564282dff101e6d167321237eeec66eedb2a438ed80fdeaa0",
      "user": {"email": "[email protected]"}
     }
    }
    
    암호는 암호화 js로 산열되어 있습니다.그것은 here을 찾을 수 있는 NPM 패키지가 있습니다.

    마지막으로 요청을 보내면 다음과 같은 형식의 액세스 토큰, 토큰, 기타 정보를 받을 수 있습니다.
    
    {
      "data": {
        "authenticate": {
          "sessionId": "61f84e24f6f7c0651ee419c9",
          "tokens": {
            "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDM2NjI4ODQsImV4cCI6MTY0NDI2NzY4NH0.-oSKl2BNUrcRaK3MghQp2DGEhBdGNUd8YVg3oqU4sR4",
            "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuIjoiMmZmMjkzZTQ4YTc1M2ZjNWI5NjFhYWQ4ZTUyYzc5YTU0MDkwZDgxMzMwZWI0ZTIyYmMyYWE4M2U1ZTM4MzljNDI1NDVjMjY4OTVkYTNiMjdlYjBmMWEiLCJpc0ltcGVyc29uYXRlZCI6ZmFsc2UsInVzZXJJZCI6IjYxZjdhNGNkZjZmN2MwNjUxZWU0MTljNiJ9LCJpYXQiOjE2NDM2NjI4ODQsImV4cCI6MTY0MzY2ODI4NH0.Qc2NTNYFzteH4ibFfHMT0Mt5eLgURAnOK-3mu-IIhaA"
          },
          "user": {
            "id": "61f7a4cdf6f7c0651ee419c6",
            "emails": [
              {
                "address": "[email protected]",
                "verified": false
              }
            ],
            "username": null
          }
        }
      }
    }
    
    
    또는 코드에서 이 질의를 실행하려면 이 끝점을 호출합니다.
    우정
    function graphql(query, variables = {}) {
        const graphqlSessionName = "PageSession";
        return new Promise(async (resolve, reject) => {
            const data = sessionStorage.getItem(graphqlSessionName);
            if (data) {
                resolve(JSON.parse(data));
            } else {
                await fetch("/graphql", {
                    method: "POST",
                    headers: {
                        "Content-Type": "application/json"
                    },
                    body: JSON.stringify({
                        variables,
                        query
                    })
                }).then(function(result) {
                    result.json().then((data) => {
                        sessionStorage.setItem(graphqlSessionName, JSON.stringify(data));
                        resolve(data);
                    });
                });
            }
        });
    }
    
    이제 언제든지 검증이 필요한 요청을 성공적으로 보내려면 위의 응답에서 방문 영패를 복사해서 저장하고 HTTP 헤더에 추가하십시오.
    {
    "Authorization":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuIjoiMmZmMjkzZTQ4YTc1M2ZjNWI5NjFhYWQ4ZTUyYzc5YTU0MDkwZDgxMzMwZWI0ZTIyYmMyYWE4M2U1ZTM4MzljNDI1NDVjMjY4OTVkYTNiMjdlYjBmMWEiLCJpc0ltcGVyc29uYXRlZCI6ZmFsc2UsInVzZXJJZCI6IjYxZjdhNGNkZjZmN2MwNjUxZWU0MTljNiJ9LCJpYXQiOjE2NDM2NjI4ODQsImV4cCI6MTY0MzY2ODI4NH0.Qc2NTNYFzteH4ibFfHMT0Mt5eLgURAnOK-3mu-IIhaA"
    }
    
    http://your_ip_address:3000/graphql
    결론
    그렇습니다.Response commerce가 원격 VPS 서버에 성공적으로 배치되었습니다.해시 비밀번호를 만들고 접근 영패를 받을 수 있습니다.
    질문이 있거나 이 게시물에 추가할 수 있는 힌트가 있으면 아래 댓글에 남겨 주세요.
    이 글이 도움이 된다면 을 통해 저에게 사랑을 보여주세요.
    감사합니다. 계속 인코딩하세요!

    좋은 웹페이지 즐겨찾기