Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 1.69 KB

1908 Meteor에서 BindEnviroment, Bitly api를 사용하여 url 축소.md

File metadata and controls

67 lines (47 loc) · 1.69 KB

Issue: Meteor에서 BindEnviroment, Bitly api를 사용하여 url 축소

상황:

클래스 등록, 수락에 대한 알림이 문자로 가는데 이 때 url이 길게 가서 쓸데 없는 요금이 나오는 경우가 있어서 Bitly api를 사용하여 축소


생각해낸 방안:

  • Bitly Api 사용
  • Meteor에서 bindEnvironment 사용하여 api의 콜백 wrapping하여 사용

방안: Bitly Api 사용 (실패)


Bitly의 shortenLink api를 사용하는데 error가 났는데 알고보니 Meteor는 동기적으로 코드를 보도록 시스템화 되어있고, 비동기적인 부분을 해소해주는 모듈로 fiber라는 모듈을 사용한다. 즉 외부 api를 사용하는 과정에서 meteor의 server context에 초기화를 해줘야 했다.


    참조:

방안: Meteor에서 bindEnvironment 사용하여 api의 콜백 wrapping하여 사용 (성공)


이때 사용했던 api는 bindEnvironment인데, 외부 api의 비동기를 관리하기 위하여 초기화를 해주는 역할을 해준다.

Bitly.shortenLink(
    requestedProgramUrl,
    Meteor.bindEnvironment((err, results) => {
      const url = JSON.parse(results).data.url;
    })
);

위와 같은 방식으로 콜백을 감싸줘서 사용해야했다.




    참조:
    https://guide.meteor.com/using-npm-packages.html#async-callbacks