Как добавить скрипт внутренней связи в мое приложение React?

Я использую redux-segment для своей аналитики и пытаюсь внедрить Intercom. Проблема, с которой я сталкиваюсь, заключается в том, чтобы заставить его загружаться и т. д. Я пытаюсь следовать этому, но все еще не уверен, где ввести идентификатор приложения и т. д. Интерком-сегмент. Я хочу загрузить интерком в моем создателе действий при захвате текущего пользователя, но нет документации о том, как на самом деле загрузить интерком.

import { EventTypes } from 'redux-segment';

export function currentUser() {

  const request = user.current(); //this correctly grabs current user.

  if(request == null) {
     //having trouble with this part. load intercom non user specific
  } else {
     load intercom user specific
  }

  return {
    type: CURRENT_USER,
    payload: request
  };
}

person joethemow    schedule 22.02.2017    source источник
comment
если вы посмотрите их документы, как и почти любого другого поставщика аналитики, вы вам нужно загрузить аналитику через тег script в вашем html-файле, который назначает интерком вашему окну, и тогда у вас есть к нему доступ.   -  person John Ruddell    schedule 22.02.2017
comment
Да, я понял это, поместив его в index.html, но я не хочу загружать его туда. Можно ли загрузить его в мой index.js?   -  person joethemow    schedule 22.02.2017
comment
конечно, да, я имею в виду, что это просто javascript. просто запустите этот код javascript внутри componentWillMount или чего-то еще, и он должен иметь тот же эффект.   -  person John Ruddell    schedule 22.02.2017
comment
Да, это помогло, спасибо   -  person joethemow    schedule 22.02.2017
comment
Окей круто! Я только что написал ответ, чтобы мы могли закрыть этот вопрос! :)   -  person John Ruddell    schedule 22.02.2017


Ответы (2)


Что вы хотите сделать, так это поместить скрипт для загрузки интеркома либо в ваш index.html, либо в ваш компонент ввода, чтобы загрузить их объект аналитики. Из их документов вы можете инициализировать его так

class MyComponent extends Component {
    constructor(props){
        super(props);
        window.Intercom('boot', {
          app_id: INTERCOM_APP_ID,
          // other settings you'd like to use to initialize Intercom
        });
    }
    ....
}
person John Ruddell    schedule 22.02.2017
comment
@damianesteban У ОП был код для запуска, и он искал, где его запустить, и не предоставил его в вопросе ... Мой ответ был связан с объемом вопроса, при этом я был бы рад вытащить в конкретной информации об инициализации с сайта документации. Обычно я бы рекомендовал сначала просмотреть документы, которые они предоставляют, прежде чем искать способ инициализации в SO. - person John Ruddell; 19.05.2020

Принятый ответ правильный. В деталях:

class LandingPage extends Component {

  constructor(props) {
    super(props);

    // initialize intercom (don't forget to *update* when page changes)
    window.Intercom("boot", {
      app_id: "your_app_id"
    });
  }
}

https://app.intercom.io/a/apps/bhfx1oqj/messages/guide/identify_your_users/track_users

person user    schedule 13.07.2018
comment
Это должен быть принятый ответ, поскольку он на самом деле обеспечивает решение. - person damianesteban; 19.05.2020