AWSベースのアプリに問題があります。私はアマゾンラムダに次の関数をテストすると、すべてが(私は自分の携帯電話にプッシュ通知を取得する)作品:アンドロイドアプリ内で呼び出されたときにプッシュ通知が受信されない - Amazon SNS
console.log("Loading kupa function");
var AWS = require("aws-sdk");
exports.handler = function(event, context) {
var eventText = JSON.stringify(event, null, 2);
console.log("Received event:", eventText);
var sns = new AWS.SNS();
var params = {
Message: eventText,
Subject: "Test SNS From Lambda",
TopicArn: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
};
sns.publish(params, context.done);
context.succeed("kupa sukces");
};
をしかし、私は自分の携帯電話上で次のメソッドを使用したら、私は「kupa sukces」にログイン取得します私のAndroidスタジオが、私は電話で通知を取得しません。さらに、ラムダの「テスト」WELとしてもう動作しません...ここで コードです:
String lambdaRequest = "{\n\"kupa\" : \"" + true + "\"\n}";
asyncTask.delegate = wysylaczKupy.this;
asyncTask.friendFunction("friendsRequest",lambdaRequest);
}
friendFunctionはここにある:
public static void friendFunction(String funName, String requestContent) {
final String functionName = funName;
final String requestPayload = requestContent;
new AsyncTask<Void, Void, InvokeResult>() {
@Override
protected InvokeResult doInBackground(Void... params) {
try {
final ByteBuffer payload =
ENCODER.encode(CharBuffer.wrap(requestPayload));
final InvokeRequest invokeRequest =
new InvokeRequest()
.withFunctionName(functionName)
.withInvocationType(InvocationType.RequestResponse)
.withPayload(payload);
final InvokeResult invokeResult =
AWSMobileClient
.defaultMobileClient()
.getCloudFunctionClient()
.invoke(invokeRequest);
return invokeResult;
} catch (final Exception e) {
Log.e("LAMBDA", "AWS Lambda invocation failed : " + e.getMessage(), e);
final InvokeResult result = new InvokeResult();
result.setStatusCode(500);
result.setFunctionError(e.getMessage());
return result;
}
}
}
が、私はこれをどのように修正することができますか?
は月、
はSNSトピックに公開するためのラムダ関数は非常に適切ではなかった、事前に 月
Cognitoの資格情報にSNS通知を送信する権限がありますか?これは、コンソールからの呼び出しとサンプルアプリケーションからの呼び出しの主な違いです。 – Yangfan