2017-04-11 56 views
1

有兩個iOS應用(讓我們爲它們命名的appA和appB的)都使用parse-server託管在herokumailgun,我面臨的問題描述以下。mailgun /解析服務器(Heroku的)不工作

讓我先說這兩個應用程序是不相關的,除了它們都有用戶帳戶和郵件mailgun用於在用戶創建帳戶時發送確認郵件。

appA工作正常,這意味着在創建新帳戶時發送確認郵件。 但appB不再有效,這意味着創建新帳戶時不會發送確認郵件。

我試圖找出兩者之間可能存在什麼差異,只做一項工作而不做其他。 我也讀過或聽過關於這個主題的一些教程,來提醒我我是如何做這種設置的(幾個月前回來的)。但我無法理解任何相關的差異並解決我的問題,即將appB帶回工作狀態。

任何暗示(關於該做什麼或尋找什麼)由在該領域比我更有經驗的人將非常感激。

在此先感謝!

僅供參考,這裏是該應用的解析服務器index.js這是不工作:

var express = require('express'); 
var ParseServer = require('parse-server').ParseServer; 
var path = require('path'); 
var S3Adapter = require('parse-server').S3Adapter; 

var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI; 

if (!databaseUri) { 
    console.log('DATABASE_URI not specified, falling back to localhost.'); 
} 

var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://heroku_database', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || '__appId__', 
    masterKey: process.env.MASTER_KEY || '__masterKey__', 
    filesAdapter: new S3Adapter(
    "__AAKKIII__", 
    "pP7Lm16Tt/nTrKq3242Hv", 
    "myapp", 
    {directAccess: true} 
), 
    serverURL: process.env.SERVER_URL || 'https://myapp.herokuapp.com/parse', 
    liveQuery: { 
    classNames: ["User", "myappUnit", "myappFieldOne", "myappFieldTwo"] 
    }, 
    emailAdapter: { 
    module: 'parse-server-simple-mailgun-adapter', 
    options: { 
     fromAddress: '[email protected]', 
     domain: 'mydomain.net', 
     apiKey: 'key-fjdfijofd', 
    } 
    } 
}); 

var app = express(); 

app.use('/public', express.static(path.join(__dirname, '/public'))); 

var mountPath = process.env.PARSE_MOUNT || '/parse'; 
app.use(mountPath, api); 

app.get('/', function(req, res) { 
    res.status(200).send('I dream of being a website. Please star the parse-server repo on GitHub!'); 
}); 

app.get('/test', function(req, res) { 
    res.sendFile(path.join(__dirname, '/public/test.html')); 
}); 

var port = process.env.PORT || 1337; 
var httpServer = require('http').createServer(app); 
httpServer.listen(port, function() { 
    console.log('parse-server-example running on port ' + port + '.'); 
}); 

ParseServer.createLiveQueryServer(httpServer); 
+0

當您收到一封電子郵件時,您是否看到'heroku logs -tail'中兩個應用程序之間存在任何差異T' – brennan

+0

是的,我看到確實有很大的不同。在工作應用程序的情況下,創建新帳戶時日誌中會有大約10行跟蹤,而單擊電子郵件驗證鏈接時會有另外幾行。在非工作應用程序的情況下,日誌中沒有任何內容。我可以驗證該帳戶是否在數據庫中創建,但沒有驗證郵件出現。是否有我可以檢查是否所有設置都應該如此的事項清單? – Michel

+0

我們可以看到解析服務器'index.js'嗎?這兩個應用程序共享相同的分析服務器嗎?您還可以將環境變量與'heroku run printenv'進行比較。 – brennan

回答

0

搜索網,嘗試不同的東西,左看右看之後,我最終通過查找缺少什麼。 我把它放在這裏以防將來幫助別人。

在我的崗位解析服務器index.js缺少系是:

  • verifyUserEmails:真實,
  • APPNAME:上述 '解析應用程序',

的線條需要包含在內部:

var api = new ParseServer({ 
...... 
})