在angular2项目

时间:2017-08-20 07:00:07

标签: angular angular-cli codebird

我想在angular2项目中包含codebird。我正在使用angular-cli。问题是我已经集成了codebird js模块但是在构建时我得到了这个错误 - '无法读取属性提供的null'。有人能给出在angular2中整合codebird的一步一步的程序吗?

1 个答案:

答案 0 :(得分:0)

这是我的解决方法。

在angular-cli.json

中包含CodeBird
"scripts": [
    ...
    "./assets/js/codebird.js",
    ...
]

然后在您的服务目录中创建一个名为TwitterAuth的文件夹。 (您可以使用任何名称)

然后在那里创建以下文件。我将包含我拥有的文件的内容。

<强> index.ts

export { TwitterAuth } from './twitterAuth';

<强> twitterAuthd.d.ts

export declare class TwitterAuth {
    twitterLogin(): void;
}

<强> twitterAuth.js

export let TwitterAuth = (function () {
  function TwitterAuth() {
  }
  TwitterAuth.prototype.twitterLogin = function () {
    let cb = new Codebird;
    cb.setConsumerKey("iuJN6zUs0TdggP3NvszVa5z2", "RNUnzMwFPn6vl5aaHW2YSbAAjevfW1LMRFzET6ugNV6a5bOAsz");

    localStorage.removeItem("oauth_token");
    localStorage.removeItem("oauth_token_secret");
    let oauth_token = localStorage.getItem("oauth_token");
    let oauth_token_secret = localStorage.getItem("oauth_token_secret");
    if (oauth_token && oauth_token_secret) {
    cb.setToken(oauth_token, oauth_token_secret);
    } else {
    cb.__call(
      "oauth_requestToken", {
        oauth_callback: location.origin
      },
      function (reply, rate, err) {
        if (err) {
        }
        if (reply) {
          console.log(reply);
          // stores it
          cb.setToken(reply.oauth_token, reply.oauth_token_secret);

          // save the token for the redirect (after user authorizes)
          // we'll want to compare these values
          localStorage.setItem("oauth_token", reply.oauth_token);
          localStorage.setItem("oauth_token_secret", reply.oauth_token_secret);

          // gets the authorize screen URL
          cb.__call(
            "oauth_authenticate", {},
            function (auth_url) {
              // JSFiddle doesn't open windows:
              window.location.replace(auth_url);
              // $("#authorize").attr("href", auth_url);

              // after user authorizes, user will be redirected to
              // http://127.0.0.1:49479/?oauth_token=[some_token]&oauth_verifier=[some_verifier]
              // then follow this section for coding that page:
              // https://github.com/jublonet/codebird-js#authenticating-using-a-callback-url-without-pin
            });
        }
      });
    }
  };
  return TwitterAuth;
}());

然后在你的组件中导入这样的文件。

import {TwitterAuth} from "../../services/twitterAuth/twitterAuth";

如果您有任何问题,请告诉我。