Google chrome chrome扩展的动态清单值

Google chrome chrome扩展的动态清单值,google-chrome,google-chrome-extension,chrome-web-store,Google Chrome,Google Chrome Extension,Chrome Web Store,我开发了一个chrome扩展,我想为每个用户提供某种ID 理想情况下,我会将这个ID放在清单中,并通过chrome.app.getDetails().userid 然后我可以使用这个id每X小时获取一个提要,并且每个用户id的提要都不同 如果我自己提供CRX文件,我可以通过编写一个快速PHP脚本来完成这项工作,该脚本在下载请求时更改清单,并使用特定逻辑插入id,同时将相同的id插入mysql表 在通过Chrome Web Store为扩展提供服务时,如何做到这一点?不要在清单文件中包含特定于用户

我开发了一个chrome扩展,我想为每个用户提供某种ID

理想情况下,我会将这个ID放在清单中,并通过
chrome.app.getDetails().userid

然后我可以使用这个id每X小时获取一个提要,并且每个
用户id的提要都不同

如果我自己提供CRX文件,我可以通过编写一个快速PHP脚本来完成这项工作,该脚本在下载请求时更改清单,并使用特定逻辑插入id,同时将相同的id插入mysql表


在通过Chrome Web Store为扩展提供服务时,如何做到这一点?

不要在清单文件中包含特定于用户的值。更好的方法是使用扩展的持久性

定义此类id的一个逻辑位置是。
另一个可能的选项是后台脚本,它遵循以下逻辑:

    var userid = localStorage.getItem('userid');
    if (!userid) {
        // Create new useruid, either via a server-side script, or client-side
        // ...
        localStorage.setItem('userid', 'new user id');
    }
在本例中,我使用
localStorage
启用持久性。您也可以改用Chrome 20+,它允许用户同步他们的个人资料和设置

您也可以在服务器端实现逻辑,而不是在第一次运行时检查和检索id。例如,假设服务器的响应格式是JSON。然后,只需在响应中定义uid(可选,仅当它已更改时):

服务器必须实现以下功能:

  • 如果请求(查询字符串?)。
    • 如果
      用户ID
      无效,则生成一个,并将其包含在响应中
  • 您的应用程序的逻辑在这里
  • 这会导致响应如下所示(要使用PHP生成JSON,请使用):


    还有一个问题。。目前,该逻辑的工作方式是,用户请求下载具有预定义用户id值的扩展,然后我有一个php脚本,该脚本编辑驱动器上的清单文件,创建CRX并为用户服务。你上面写的很好,我应该更改保存用户id的位置,但我仍然不确定如何获取var值(本例中的用户id)从URL请求到特定用户下载时CRX中的任何位置-无论我使用的是chrome存储功能还是清单方式..@user838437,在我建议的解决方案中,扩展名(CRX文件)中都不包括id。它是在用户第一次使用扩展时生成和设置的。流程:1.客户端:请求CRX,2.服务器:提供静态CRX文件3.客户端:安装CRX文件4.客户端(首次运行):请求提要,包括一个无效的用户ID。5.服务器:找不到有效的用户ID,响应新的用户ID和提要。6.客户机:记住用户ID。稍后:客户端检查新的提要:A.客户端:发送用户id 3.服务器:识别用户id,发送特定于用户的提要响应。好的,但是如果我想要一个预定义的用户id,我该怎么做?@user838437不,Chrome Web Store不提供这种级别的灵活性。
    var userid = localStorage.getItem('userid');
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://example.com/feeds/json?userid=' + userid);
    xhr.onload = function() {
        var response = JSON.parse(xhr.responseText);
        if (response.userid) { // Set new uid if needed
            localStorage.setItem('userid', userid = response.userid);
        }
        // ... your application's logic ...
    };
    xhr.send();
    
    {"userid":"some unique user identifier", ....}