分享程序开发领域相关的一些信息
开放平台申请的网站应用，为什么pc端可以扫码登录，手机端却提示scope没有权限？
微信的账号平台分为公众平台和开放平台，公众平台每年都需要交300元的认证费，而开放平台只需要一次性缴纳300元的认证费后就可以一直使用。但其实微信开放平台有个巨大的坑。比如说下面这个情况。“开放平台申请的网站应用，为什么pc端可以扫码登录，手机端却提示scope没有权限？”一开始我也是摸不着脑袋，后来咨询微信官方得到了准确的回复“ 微信开放平台的网站应用仅支持扫码登录”。如果你需要的是微信里打开网直接登录，用微信开放平台是无法做到的，只能选择公众平台认证后才可以。无语了，好像又浪费了我300元。
OpenAI API-KEY如何避免被封号 OpenAI API避免封禁的解决方案
以前一直没关注账号被封这问题，也没人反馈过，今天有个会员反馈买了商城的里的KEY第二天就被封了(系统是自研并非使用本站提供），查询OpenAI API-KEY 时提示：账户疑似被封禁,不要慌,请登录 OpenAI 官网确认。网络查询了一下最近OpenAI封号很严重，而且越来越频繁，在这里有大家一起交流分析下具体原因。根据OpenAI官方的提示，被限制可能有以下三大原因：1. 违反OpenAI 使用条款2. 违反OpenAI 使用策略3. 在不支持的地区使用总结就是：这些条款规定了用户在使用OpenAI的服务时需要遵守的要求，包括保护OpenAI的知识产权、遵守法律法规、保护个人信息等。如果发现漏洞或违规行为，需要及时通知OpenAI。这些条款还包括了关于服务的使用期限和终止、免责声明、争议解决、权利许可等方面的内容。如果违反这些条款，OpenAI有权终止用户的服务。重点来了：如何避免账号被封，中国的app可以集成openai。OpenAI提供了API接口，可以让开发者在自己的应用程序中使用，但是需要先进行申请并获得认证才能使用。比如一个人有多个账号获取API服务，如果被检测到在同一个IP或类似IP不停更换API发出请求，就违反了OpenAI API的使用规则。如何规避：购买KEY后先查询余额，后台有KEY池功能的多加几个KEY轮换调用，越多越安全，不要只调用一个KEY，如果只使用一个KEY封的几率很大。现在很多chatGPT都有KEY池功能，目的就是预防封号。目前使用本站提供的chatGPT未出现封号情况。———————————————————————————————–对于那些正在学习或者想要深入了解openai封号提示的人来说，下面这篇文章一定会给您带来很多启示和帮助。1. OpenAI封号提示是什么？OpenAI封号提示是指当用户在使用OpenAI的API时，由于违反了OpenAI的使用规定，导致账号被封禁，系统会自动发送一条封号提示信息给用户。在使用OpenAI API时，需要遵守OpenAI的使用规定，比如不得用于非法用途、不得侵犯他人隐私等。如果用户违反了这些规定，就有可能会收到封号提示。除了OpenAI外，其他一些人工智能平台也有类似的封号提示机制。这是为了保护平台的安全和用户的利益，确保平台的正常运营。如果用户收到了OpenAI的封号提示，应该认真检查自己的使用行为，找出问题所在，并及时改正。同时，也可以联系OpenAI的客服寻求帮助和解决方案。遵守平台规定，合理使用人工智能平台的API是非常重要的。只有这样，才能更好地利用人工智能技术，为人类带来更多的便利和创新。2. 为什么会收到OpenAI封号提示？OpenAI封号提示是指当用户在使用OpenAI平台时违反了其使用协议或者行为不当，OpenAI会对该用户进行封号处理，并在封号后向该用户发送封号提示信息。在使用OpenAI平台时，用户需要遵守其使用协议，包括但不限于不进行破坏性行为、不进行非法活动、不发布不良信息等。如果用户违反了协议，OpenAI将会对其进行封号处理，并在封号后向该用户发送封号提示信息，提示用户违反了哪些协议条款以及封号期限等信息。除此之外，用户在使用OpenAI平台时还需要注意保护自己的账号安全，不要将账号信息泄露给他人，避免造成账号被盗用等问题。同时，在使用OpenAI平台时也需要注意保护他人的隐私信息，不要发布涉及他人隐私的信息，避免引起不必要的纠纷。OpenAI封号提示是一种警示措施，提醒用户在使用OpenAI平台时需要遵守使用协议和相关规定，保护自己和他人的合法权益。3. 如何避免收到OpenAI封号提示？OpenAI封号提示是指在使用OpenAI平台时，由于违反了OpenAI的使用规定而被封禁账号的提示信息。通常会在用户尝试登录或使用OpenAI平台时，出现提示信息告知用户账号已被封禁。OpenAI是一家人工智能研究机构，其平台提供了一系列人工智能技术和工具，包括自然语言处理、机器学习等。为了维护平台的正常运营和保护用户的利益，OpenAI制定了一系列使用规定，如不得进行非法活动、不得滥用平台资源等。如果用户违反了这些规定，OpenAI就有权封禁该用户的账号。为了避免被封禁账号，用户需要遵守OpenAI平台的使用规定。此外，还需了解相关的法律法规和道德规范，以避免在使用人工智能技术时产生违法或不道德的行为。同时，用户还应该注意保护自己的账号信息和隐私，避免账号被他人恶意使用。OpenAI封号提示是指在使用OpenAI平台时，由于违反了OpenAI的使用规定而被封禁账号的提示信息。为了避免被封禁账号，用户需要遵守OpenAI平台的使用规定，并遵循相关的法律法规和道德规范。4. OpenAI封号提示会对用户造成什么影响？OpenAI封号提示是指在使用OpenAI平台时，由于违反了平台规定或者使用不当，导致账号被封禁，系统会自动弹出提示信息告知用户账号被封禁的原因和期限。在使用OpenAI平台时，需要注意以下几点：1. 遵守平台规定：OpenAI平台有一系列的规定和准则，用户在使用平台时必须严格遵守，否则可能会被封禁账号。2. 不进行恶意操作：用户在使用OpenAI平台时，不能进行恶意操作，比如利用平台进行**、散布虚假信息等。3. 不进行违法操作：用户在使用OpenAI平台时，不能进行违法操作，比如利用平台进行**、**等违法行为。4. 不进行侵权操作：用户在使用OpenAI平台时，不能进行侵权操作，比如利用平台发布他人的知识产权内容等。用户在使用OpenAI平台时，需要遵守平台规定，不进行恶意、违法、侵权操作，才能避免被封禁账号的情况发生。如果您还有其他关于openai封号提示的问题或者需要，欢迎随时联系我们，我们会为您提供更专业的服务和解决方案。
（注：本文看起来比较像AI创作的。）图灵奖得主Bengio和Hinton，同时警告AI可能灭绝人类！就在昨夜，一封签署名单多达350人的公开信迅速传播开去，信中核心只有一句话：“降低AI灭绝人类的风险”，应该像流行病和核战争等其它社会规模的风险一样，成为全球的优先事项。签署这封公开信的，既包括三大AI巨头的CEO，即ChatGPT老板、OpenAI的Sam Altman，DeepMind的Demis Hassabis和Anthropic的Dario Amodei；也包括不少国内外高校的教授，除了Yoshua Bengio和Geoffrey Hinton以外，清华AIR院长张亚勤和斯坦福教授、图灵奖得主Martin Hellman等人也名列其中。这段时间来，关于AI风险的各种大小讨论也是接连不断，OpenAI CEO Sam Altman前段时间还倡议称，人们应当像对待核设施一样监管AI。所以，究竟是谁发起的这封公开信倡议，又是否有AI大牛反对这件事？为何签署这封信？发布这封公开信的机构名叫Center for AI Safety（CAIS），是一家关于AI安全的非营利组织。在这封公开信的开头，CAIS反复强调：包括AI专家、记者、政策制定者和公众在内，越来越多的人开始讨论AI带来的一系列重要和紧迫的风险。即便如此，要想表达对先进AI的严重风险，可能还是有一定难度。这封公开信旨在克服这一障碍，并展开对相关议题的讨论，让更多专家和公众人物认识到这一点。事实上，已经有不少签署了这封信的AI大牛，最近发了关于AI风险的博客文章、或是在访谈中谈到了自己的观点。例如前段时间，Yoshua Bengio就写了一封长信，警告称“人类大脑是生物机器，一定会有超级智能AI超越它”。除此之外，包括Stability AI的创始人Emad Mostaque、以及剑桥大学助理教授David Krueger等人，也都在最近的访谈中提到了关于AI带来的潜在危害。例如，Emad Mostaque认为，10年后包括Stability AI、OpenAI和DeepMind在内，这些AI公司的规模甚至会超过谷歌和Facebook。也正是因此，AI风险是一个必须要考虑的事情：我们可能正处于全面变革的风口浪尖，这些变革对于任何一家公司或是国家来说都太过庞大，以至于难以管理。没签的AI大牛怎么说？当然，这波闹得沸沸扬扬的“请求AI监管”浪潮下，也有不少反对的声音。目前为止，包括另一位图灵奖得主Yann LeCun、前特斯拉AI总监Andrej Karpathy还有吴恩达等AI大牛在内，都还没签署这封联名信。吴恩达发推回应称：当我想到大部分人类生存面临的风险时：流行病、气候变化导致大规模人口减少、（撞击地球的）小行星……AI将是我们寻找解决方案的关键部分。所以，如果你想让人类在接下来的1000年里生存和繁荣，那就让AI发展得更快，而不是更慢。LeCun转发表示同意：“超人级”AI之所以不在风险列表榜首，很大程度上是因为它还不存在。至少我们在设计出达到狗智商（更不用说人类了）的AI之前，讨论它的安全性还为时过早。对此，纽约大学教授Gary Marcus补充道：不要把框架缩小到只关注人类灭绝的风险。AI其实还存在许多其他的严重风险，包括可能帮助开发生物武器等。不过，Gary Marcus同样没有签署这份350人公开信。显然包括不少AI大牛在内，反对者主要有两种意见。一种意见认为，AI技术确实存在风险，但这封公开信涉及到的内容太泛泛。如果有更精确的声明如“减轻AI技术的潜在风险应该是科技行业、政府和该领域学术研究人员的首要任务”，那么这封信还是可以签署的。这封公开信中的内容根本就是夸大其词了，而且AI在气候变化等领域甚至可以起到降低风险的作用。另一类意见则认为，这封信只不过是当前掌握最领先AI技术的人，试图控制AI接下来的走向而已。以OpenAI的CEO Sam Altman为例：Sam Altman要是真的担心，大可以现在直接关掉ChatGPT服务器。所以，你认为按照现在的进度来看，AI有可能灭绝人类吗？
本地搭建微信小程序或者公众号开发服务器的简单方法
现在小程序开发需要购买服务器，价格还是有点贵的，可以花费小代价就可以搭建一个本地服务器，可以用来开发小程序和微信公众号等。1.域名（备案过的） 2.阿里云注册免费的https证书 3.配置本地的nginx 4.内网映射（本地安装wampserver 服务器）一、域名注册花生壳，开通内网映射需要8元（我开通时需要，现在不清楚还要不要），里面可以注册2个免费的域名，都是免备案的。具体的请自行百度，花生壳注册地址二、申请阿里云免费的https证书阿里云免费的https证书地址这个步骤相对来说比较简单，需要注意的地方也不多，按照阿里云官方的提示来，就能够操作成功了。值得注意的是你在申请证书过程中，证书是免费的，你不用付费，但是需要下单，下单完成后需要完善你的域名信息，然后提交审核。审核完成后，官方自动给你发放证书，顺利的话一个小时就能搞定。注意：1.通过花生壳，内网映射出本地的访问地址2.把阿里云证书补全信息的域名填写完成后，阿里云会进入 审核中，需要下载他的一个fileauth.txt 文件i.在进度查询页面，单击 fileauth.txt 验证文件，下载到本地。ii.在您的站点服务器的根目录创建.well-known/pki-validation，创建文件夹Windows命令是 md ".well-known" 子目录pki-validation。iii.将 fileauth.txt 验证文件上传到.well-known/pki-validation目录下 目录。 完成后，可通过验证 URL 地址（http://a.com/.well-known/pki-validation/fileauth.txt ）访问。 参考如何配置域名授权验证?三、配置本地的nginx（主要是Apache的https配置太繁琐了）下载证书文件image.png 配置nginx中的nginx.conf文件,证书要放在conf/cert目录下，具体的代码server { listen 443; server_name 11.168.1.150; ssl on; root "D:/works/wamp"; charset utf-8; index index.html index.htm; ssl_certificate cert/214296869710097.pem;#替换成你的文件 ssl_certificate_key cert/214296869710097.key;#替换成你的文件 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root "D:/works/wamp"; index index.html index.htm index.php; proxy_pass http://11.168.1.150:8081; } }四、配置花生壳的内网映射注意：花生壳的映射不能设置为80端口的映射（我也没找到原因在哪，客服反馈是要设置自定义端口）成功之后，对外访问的地址最后上个配置成功后，请求的效果吧！这样就可以用本地服务器做小程序开发了，希望能帮助到大家，谢谢大家对本站的支持。如果你的本地服务器是iis或者其他的web服务器，配置方式差不多，这里最关键的就是个域名映射这个步骤。
Msxml2.XMLHTTP和Msxml2.ServerXMLHTTP的区别与应用场景 发送 HTTP 请求时，首先想到的一般是 Msxml2.XMLHTTP（Microsoft.XMLHTTP 已经不提倡使用了）。 ServerXMLHTTP 为不同 Web 服务器之间的服务器安全 HTTP 访问提供方法和属性。您可以使用此对象在不同的 Web 服务器之间交换 XML 数据。 ServerXMLHTTP 随 Microsoft XML Parser (MSXML) 版本 3.0 或更高版本提供。 由于 XMLHTTP 内部使用 WinInet，所以不支持在服务器端应用程序（例如 Active Server Pages (ASP)）、宿主在 COM+ 中的组件，或 Windows 服务中使用 XMLHTTP。 XMLHTTP 为客户端应用程序而设计，并依赖于基于 Microsoft Win32 Internet (WinInet) 而构建的 URLMon。ServerXMLHTTP 为服务器应用程序而设计，并依赖于新的 HTTP 客户端堆栈 WinHTTP。ServerXMLHTTP 提供了可靠性和安全性，并且是服务器安全的。 ServerXMLHTTP 推荐用于服务器应用程序，而 XMLHTTP 推荐用于客户端应用程序。 在大部分情况下，Msxml2.XMLHTTP 能够很好地完成工作，因为它是有缓存的。比如，我们用 Msxml2.XMLHTTP 发送 HTTP POST 请求模拟登陆了某个网站，它会把登陆时的 Cookie 和 Session 缓存下来，当我们想获取网站的数据时直接 HTTP GET 就行了，不需要人工发送 Cookie 和 Session。 但是，在有些时候，缓存会给我们造成麻烦。比如我们要写一个 VBS 脚本暴力破解某个网站的账号，假设我们已经破解了一个账号，继续破解时，由于缓存的关系，网站会认为我们已经登陆了，这样会干扰我们判断账号是否破解成功。也就是说，当成功破解一个账号后，需要多加几行代码登出这个账号。在这种情况下，就应该使用没有缓存的 Msxml2.ServerXMLHTTP。 总结一下就是，如果需要缓存，则用 Msxml2.XMLHTTP；否则应该用 Msxml2.ServerXMLHTTP。
pbootcms如何配置邮件通知开启留言发邮箱
查看网站留言不及时咋办，那当然首选开启留言信息邮件通知功能。pbootcms默认后台就已经自带了这个功能，只要去配置填写相关信息即可开启使用。这边就简单的介绍下如何开启邮件通知实现留言发邮箱上。介绍之前先讲解下什么是邮件通知，邮件通知就是网站上有人留言成功了，后台增加留言信息的同时再发送一封邮件到指定的邮箱上。这个时候后台是需要设置个发送方邮箱，然后通过发送方邮箱发送留言信息到接受邮箱上。操作步骤打开后台进入配置参数-邮箱通知，看到如下，这是一般按照提示的填写完整，然后发送测试邮件提示ok那就可以了。以下是本站的后台配置后的截图，用的是163邮箱，因为本站域名是ssl认证过的（就是已经带https）所以使用默认的ssl那里选择是。邮箱密码这里具体根据实际情况填写，如果是企业邮箱大都直接填写登录密码，截图语句有误。这边来补充下怎么去获取163或者qq邮箱的授权码。1、163邮箱获取smtp授权码，按照截图操作下，授权码管理那里因为此帐号已经获取过了所以显示这个，如果未获取过点击设置，提示发短信之类的操作下即可。具体还可以参考百度经验->网易邮箱如何设置授权码2、QQ邮箱获取smtp授权码进入账户页面后往下来，点击开启，点击生成授权码，按提示操作即可。补充参考百度经验->QQ邮箱开启SMTP方法如何授权然后获取到的授权码复制到后台相应位置即可。
什么是绝对地址?是指在互联网上独立的地址，从任何网站上都可以访问到你网站的地址，其中包括主域名和所在的目录。网络优化过程中一定要注意网站的绝对地址.比如：例如这种技术教程就是相对地址例如这种CMS开发网就是绝对地址。网站首页采用绝对地址的好处1、防止同行竞争对手恶意镜像我们的网站，还有就是防止搜索引擎只收录二三级域名而不收录一级域名。2、使用绝对地址，可以免做301重定向，从而很好的解决网站首选域问题。3、一个网站可以用多个域名进行访问，比如www.kaifacms.com和kaifacms.com都可以访问当我们网站，为了让搜索引擎更好的分清哪个才是我们的主站，我们应该采用绝对地址从而提高我们网站的权重。首页采用决对地址，可以防止PR分散。如果有两个或更多的域名解析到了同一空间，首页采用的是决对地址，那么搜索引擎不管从哪个网站得到了收录的网站的页面，都会把权重记在主域名上。省去了301重定向。PbootCMS二开步骤开发文件：/apps/home/controller/ParserController.php搜索函数：parserAfter将新增函数放在parserAfter函数最后一行$content = $this->parseLinkAddHost($content); // 相对路径转绝对链接 return $content;处理函数将函数复制到ParserController类内// 转绝对链接 private function parseLinkAddHost($content) { if(!Config::get('parseLink')) { return $content; } // href $pattern_href = '/href="/(.*)"/isU'; $http_type_href = is_https() ? 'https://' : 'http://'; $http_host = $http_type_href . $_SERVER['HTTP_HOST'].'/'; $content = preg_replace($pattern_href, 'href="'.$http_host.'$1"', $content); // src $pattern = '/src="/(.*)"/isU'; $http_type = is_https() ? 'https://' : 'http://'; $http_host = $http_type . $_SERVER['HTTP_HOST'].'/'; $content = preg_replace($pattern, 'src="'.$http_host.'$1"', $content); return $content; }
前言介绍一款大佬分享的简单方便阿里云短信封装代码，不用官网复杂的SDK，快速上手。由CMS88适配成pbootcms，可以拿来快速制作短信发送功能。封装代码<?php /** * @author CMS88 * 阿里云SMS */ namespace core\sms; use core\basic\Config; class AliyunSms { // 保存错误信息 public $error; // Access Key ID private $accessKeyId = ''; // Access Access Key Secret private $accessKeySecret = ''; // 签名 private $signName = ''; // 模版ID private $templateCode = ''; public function __construct() { // 配置参数 $this->accessKeyId = Config::get('sms_appid'); $this->accessKeySecret = Config::get('sms_secret'); $this->signName = Config::get('sms_signame'); $this->templateCode = Config::get('sms_checkcodetpl'); } private function percentEncode($string) { $string = urlencode ( $string ); $string = preg_replace ( '/\+/', '%20', $string ); $string = preg_replace ( '/\*/', '%2A', $string ); $string = preg_replace ( '/%7E/', '~', $string ); return $string; } /** * 签名 * @param unknown $parameters * @param unknown $accessKeySecret * @return string */ private function computeSignature($parameters, $accessKeySecret) { ksort( $parameters ); $canonicalizedQueryString = ''; foreach ( $parameters as $key => $value ) { $canonicalizedQueryString .= '&' . $this->percentEncode ( $key ) . '=' . $this->percentEncode ( $value ); } $stringToSign = 'GET&%2F&' . $this->percentencode ( substr ( $canonicalizedQueryString, 1 ) ); $signature = base64_encode ( hash_hmac ( 'sha1', $stringToSign, $accessKeySecret . '&', true ) ); return $signature; } /** * @param unknown $mobile * @param unknown $verify_code * */ public function send_verify($mobile, $tpljson) { $params = array ( //此处作了修改 'SignName' => $this->signName, 'Format' => 'JSON', 'Version' => '2017-05-25', 'AccessKeyId' => $this->accessKeyId, 'SignatureVersion' => '1.0', 'SignatureMethod' => 'HMAC-SHA1', 'SignatureNonce' => uniqid (), 'Timestamp' => gmdate ( 'Y-m-d\TH:i:s\Z' ), 'Action' => 'SendSms', 'TemplateCode' => $this->templateCode, 'PhoneNumbers' => $mobile, //'TemplateParam' => '{"code":"' . $verify_code . '"}' 'TemplateParam' => $tpljson //更换为自己的实际模版 ); //var_dump($params);die; // 计算签名并把签名结果加入请求参数 $params ['Signature'] = $this->computeSignature( $params, $this->accessKeySecret ); // 发送请求（此处作了修改） //$url = 'https://sms.aliyuncs.com/?' . http_build_query ( $params ); $url = 'http://dysmsapi.aliyuncs.com/?' . http_build_query ( $params ); $result = json_decode( get_url($url) ); if( isset($result->Code) && $result->Code=='OK' ) { return ['code'=>1,'msg'=>$result->Message]; }else{ return ['code'=>0,'msg'=>$result->Message]; } } }