Closed nonarin closed 4 years ago
処理が固まるということはまずないです。何かエラーが出ているはずなので、開発者ツールを使って処理(特にネットワーク)を確認するといいかと思います。
早速の返信ありがとうございます。開発者ツールでお勧めがありましたらご教授くださると助かります。
お?開発者ツールというと、Google Chromeの開発者ツールのことです。
Google Chromeデベロッパーツールとは?使い方や簡易的な解析テクニックについてご紹介します! | SEO研究所サクラサクラボ
ご教授ありがとうございました。 試してみます。
app.js:73 Uncaught TypeError: ncmb.User.requestPasswordReset is not a function at HTMLAnchorElement.onEmailLoginBtn (app.js:73) at HTMLAnchorElement.dispatch (jquery.min.js:3) at HTMLAnchorElement.r.handle (jquery.min.js:3) onEmailLoginBtn @ app.js:73 dispatch @ jquery.min.js:3 r.handle @ jquery.min.js:3
おかげさまで、エラーが取れました。原因はわかったような、わかんないような 関数がみつかんなかったみたいなメッセージだと思うんですが?
https://mbaas.nifcloud.com/assets/sdk_doc/javascript/jsdoc/classes/NCMB.User.html#api-classes をみると requestPasswordReset ( callback ) Defined in lib/user.js:228 メールアドレス認証ユーザの登録メールアドレス宛にパスワード再設定のメールを送信します。 Parameters: callback Function コールバック関数 Returns: APIレスポンス
と書いてあったので使えると思ったんですが・・・ ncmb.User.requestPasswordReset(mailAddress)のように 引数いれても入れなくても同じでした。ドキュメントにはあるけど関数の実体がないか名前が間違ってる?ということでしょうか?
色々すいません。
どのライブラリを使っているでしょうか?プッシュ通知用のプラグインはJavaScript SDKとは異なります、念のため。
Monacaであれば、この辺りが参考になるかと思います。
https://mbaas.nifcloud.com/doc/current/introduction/div_quickstart_javascript_monaca.html
Monacaもプッシュ通知用のプラグインも使ってません。 メールアドレス認証のサンプルは動かせたので、これをアレンジして パスワード変更または再設定をしてみようと思い SDKリファレンスの JavaScript_currentとJavaScript_v2.2.2にパスワード再設定の関数が載ってたので、同じようにつかえるなかなと思ってやってみました。
前提条件がよく分からないのですが、以下はどうなっていますか?
色々すいません。たいそうなお手数おかけして・・・
①js/ncmb.min.js のバージョンは version: 3.1.0 です。 ②以下のように利用しているWEB(HTML)でJavaScript SDKを読み込んで
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Multi-page template</title>
<link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.5.min.css">
<link rel="stylesheet" href="assets/css/jqm-demos.css">
<link rel="shortcut icon" href="favicon.ico">
**<script src="js/ncmb.min.js"></script>** ← ここです。
<script src="js/jquery.js"></script>
<script src="_assets/js/index.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
**<script src="js/app.js"></script>
<script src="js/cssua.min.js"></script>**
<title>てすと</title>
</head>
<body>
<!-- ③メールアドレス認証のサンプルで動作確認できたコードも同じです。
④パスワード変更処理のコードでNCMBの初期化周りですが
app.js ソースの先頭で-->
// [NCMB] SDKの初期化
var ncmb = new NCMB(appKey, clientKey);
// [NCMB] user インスタンスの生成
var user = new ncmb.User();
としています。
// ログイン中の会員
var currentLoginUser; `
function` onPasswordReset() {
// loading の表示
//$.mobile.loading('show');
currentLoginUser = ncmb.User.getCurrentUser();
var mailAddress = currentLoginUser.get("mailAddress");
alert("パスワードリセットメールを開始" + mailAddress); ← これはでるけど
**ncmb.User.requestPasswordReset().then(function(user) {** ← この部分が「 Uncaught TypeError: ncmb.User.requestPasswordReset is not a function」となり動かない。
// 処理成功 //
alert("【メール / PW 認証】パスワードリセットメールを配信しました。" + mailAddress);
console.log("【メール / PW 認証】パスワードリセットメールを配信しました。");
alert("届いたメールに記載されているURLにアクセスし、パスワードを変更してください。");
// // loading の表示終了
// $.mobile.loading('hide');
// 【メール / PW 認証】ログインページへ移動
$.mobile.changePage('#emailLoginPage');
})
.catch(function(error) {
// /* 処理失敗 */
alert("【メール / PW 認証】パスワードリセットメールの配信に失敗しました:" + error);
console.log("【メール / PW 認証】パスワードリセットメールの配信失敗しました:" + error);
// // loading の表示終了
// $.mobile.loading('hide');
});
$.mobile.loading('hide');
}
使い方が違うようです。
ncmb.User.requestPasswordReset()
ではなく、 user.requestPasswordReset()
となっています。
user.set("mailAddress", "mail@example.com"); これ追加したら… あっ!うまくできました! ありがとうございます。色々お世話になりました。
以下のソースで実行しましたが、 ncmb.User.requestPasswordReset(mailAddress) .then(function(user) { で固まっていると思われパスワードリセットメールが出せないみたいです。
var mailAddress = currentLoginUser.get("mailAddress"); までは、通っていました。
どなたか、解決方法ご存じの方いましたら宜しくお願い致します。