GithubHelp home page GithubHelp logo

wechat_kit's Introduction

wechat_kit

Pub Package License

Flutter 版微信登录/分享/支付 SDK。

若需使用 API 接口方法,请使用 wechat_kit_extension

相关工具

Dart/Flutter Pub 私服

相关文档

开始使用

Android

# 不需要做任何额外接入工作
# 混淆已打入 Library,随 Library 引用,自动添加到 apk 打包混淆
  • 获取 Android 签名信息
// android/app/build.gradle
// 1. 执行 flutter run/build ,即可获得签名信息
// 2. shell 执行 pushd android && ./gradlew :app:${variant}SigningConfig && popd (variant: debug/release/profile、flavorDebug/flavorRelease/flavorProfile),即可获得签名信息
apply from: "${project(":wechat_kit").projectDir}/key-store.gradle"
//
apply from: project(":wechat_kit").file("key-store.gradle")
--- KeyStore ---
Alias name: dev
Creation date: Fri May 24 17:26:21 CST 2019
Owner: CN=lin
Issuer: CN=lin
Serial number: 77dcb7d8
Valid from: Fri May 24 17:26:21 CST 2019 until: Sun Apr 30 17:26:21 CST 2119
Certificate fingerprints:
MD5: 28:42:41:30:A4:41:6D:51:9E:00:94:66:51:D5:3A:46
SHA1: C9:A9:3A:28:6D:1A:8A:0A:F1:5A:DB:76:45:97:6F:C6:30:8A:FA:B9
SHA256: EA:3A:9B:EE:3C:8B:6C:96:31:5F:B9:09:52:58:52:05:75:E2:2A:6D:5A:C2:C0:7F:07:4F:EA:90:31:DB:58:D8
Certificate digest:
MD5: 28424130a4416d519e00946651d53a46
SHA1: c9a93a286d1a8a0af15adb7645976fc6308afab9
SHA256: ea3a9bee3c8b6c96315fb9095258520575e22a6d5ac2c07f074fea9031db58d8
+ Certificate Third-part:
+ Wechat/Weibo/Alipay MD5 HEX: 28424130a4416d519e00946651d53a46
+ Firebase SHA1 HEX: C9:A9:3A:28:6D:1A:8A:0A:F1:5A:DB:76:45:97:6F:C6:30:8A:FA:B9
+ Facebook SHA1 BASE64: yak6KG0aigrxWtt2RZdvxjCK+rk=
--- KeyStore ---

iOS

暂不支持 SceneDelegate,详见文档 微信-iOS接入指南

# 不需要做任何额外接入工作
# 配置已集成到脚本里
  • Universal Links

apple-app-site-association - 通过 https://${your applinks domain}/.well-known/apple-app-site-association 链接可访问

示例:

https://${your applinks domain}/universal_link/${example_app}/wechat/

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "${your team id}.${your app bundle id}",
        "paths": [
          "/universal_link/${example_app}/wechat/*"
        ]
      }
    ]
  }
}

⚠️ 很多 SDK 都会用到 universal_link,可为不同 SDK 分配不同的 path 以作区分

Flutter

  • 配置
dependencies:
  wechat_kit: ^${latestTag}
#  wechat_kit:
#    git:
#      url: https://github.com/RxReader/wechat_kit.git

wechat_kit:
#  ios: no_pay # 默认 pay
  app_id: ${your wechat app id}
  universal_link: https://${your applinks domain}/universal_link/${example_app}/wechat/

若需要不包含支付的 iOS SDK

wechat_kit:
+  ios: no_pay # 默认 pay
  • 安装(仅iOS)
# step.1 安装必要依赖
sudo gem install plist
# step.2 切换工作目录,插件里为 example/ios/,普通项目为 ios/
cd example/ios/
# step.3 执行脚本
pod install

示例

示例

Star History

stars

wechat_kit's People

Contributors

alexv525 avatar cocoa78 avatar codegather avatar droplet-js avatar dustinyounglee avatar fujingjunben avatar hellohejinyu avatar jayshanx avatar ra1no3o avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechat_kit's Issues

微信小程序回调问题

最近拉起微信小程序回调不执行了,我怀疑过版本的问题,但找回去年的apk下载,之前可以执行的回调现在也不行了。回调里面打印根本出不来东西

安卓每次退出APP,会报一个错

java.lang.RuntimeException: Unable to destroy activity {com./com..MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.Context.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference

相关代码都还没写,只是在pubspec.xml中引入,都会这样。

请教如何分享pdf文件

我看了文档和例子,有分享图片、视频、网页和文字,但是没有看到分享文件接口,比如word和pdf。

网页分享-shareWebpage

网页分享,当scene设置文WechatScene.SESSION,点击微信群没反应,现在还不支持分享到会话吗?
代码如下:
_wechat.shareWebpage(
scene: WechatScene.SESSION,
webpageUrl: 'https://www.baidu.com',
);

sendReq failed for wechat app signature check failed

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v1.17.0-3.2.pre, on Microsoft Windows [Version 10.0.18363.778], locale zh-CN)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 3.6)
[√] Connected device (1 available)

• No issues found!

前面几分钟还能授权登录,后面就报错了

sendReq failed for wechat app signature check failed

微信登录苹果审核失败

要求不安装微信也可以微信登录,请问这个怎么解决?
Guideline 4.2.3 - Design - Minimum Functionality

We were required to install the WeChat app before we could log in via WeChat. Users should be able to log in with WeChat and access their accounts without having to install any additional apps. If you would like to offer authentication through WeChat, please use a mechanism that allows users to log in with WeChat from within your app without first having to install an additional app.

使用Demo,登录后跳不回来

使用demo的微信登录
跳入微信后,点击确认,微信菊花转了一下,然后就结束了。
没有跳回来

是我哪里没有配置好吗?
请赐教

pod升级到1.7.2之后,项目运行不起来

pod 1.7.2

[✓] Flutter (Channel stable, v1.7.8+hotfix.3, on Mac OS X 10.14.6 18G95, locale en-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.38.1)
[✓] Connected device (1 available)

image

1.1.0版本,按照示例做了,就是WECHAT_UNIVERSAL_LINK用了微信提供的测试连接,调起api没反应,不知道下一步该如何调试了,请指教!!!

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:wechat_kit/wechat_kit.dart';

const String WECHAT_APPID = ''; //这里先删掉,是有正确填写的
const String WECHAT_UNIVERSAL_LINK = 'https://help.wechat.com/app/'; // iOS 请配置
const String WECHAT_MINIAPPID = 'your wechat miniAppId';

class SearchPage extends StatefulWidget{
@OverRide
_SearchPageState createState() {
return _SearchPageState();
}
}

class _SearchPageState extends State{

Wechat _wechat = Wechat()
..registerApp(
appId: WECHAT_APPID,
universalLink: WECHAT_UNIVERSAL_LINK,
);

StreamSubscription _auth;
WechatAuthResp _authResp;

@OverRide
void initState() {
super.initState();

print('sdfa12121231231');
print(WECHAT_APPID);
print(WECHAT_UNIVERSAL_LINK);

_auth = _wechat.authResp().listen(_listenAuth);
_wechat.authFinishResp().listen(_listenAuthend);
print(_wechat);

}

@OverRide
void dispose() {
if (_auth != null) {
_auth.cancel();
}
super.dispose();
}

void _listenAuth(WechatAuthResp resp) {
print('_listenAuth');
_authResp = resp;
String content = 'auth: ${resp.errorCode} ${resp.errorMsg}';
print(content);
print(resp);
print('_listenAuth_end');
}

void _listenAuthend(WechatQrauthResp resp) {
print('_listenAuth');
print('resp: ${resp.errorCode} - ${resp.authCode}');
print('_listenAuth_end');
}

@OverRide
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: GestureDetector(
onTap: () {
print('sdfa12121231231');
print(_wechat);
_wechat.auth(
scope: [WechatScope.SNSAPI_USERINFO],
state: 'auth',
);

        print('ssdfsdf');
      },
      child: Text("登录"),
    )
  ),
);

}
}

点击按钮的控制台打印一下内容:
2020-07-07 20:47:09.676373+0800 Runner[7530:1205731] flutter: sdfa12121231231
2020-07-07 20:47:09.677196+0800 Runner[7530:1205731] flutter: Instance of 'Wechat'
2020-07-07 20:47:09.679181+0800 Runner[7530:1205731] flutter: ssdfsdf

ios无法执行flutter run

pod 版本:1.8.4
执行flutter run 后报以下错误:

Error output from Xcode build:

** BUILD FAILED **

Xcode's output:

In file included from /Users/leo/development/flutter/.pub-cache/hosted/pub.flutter-io.cn/wechat_kit-1.0.1/ios/Classes/WechatKitPlugin.m:2:
In file included from /Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApi.h:10:
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h:385:14: warning: empty paragraph passed to '@attention' command [-Wdocumentation]
* @attention
~~~~~~~~~~^
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h:390:14: warning: empty paragraph passed to '@attention' command [-Wdocumentation]
* @attention
~~~~~~~~~~^
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h:408:14: warning: empty paragraph passed to '@attention' command [-Wdocumentation]
* @attention
~~~~~~~~~~^
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApiObject.h:1009:9: warning: empty paragraph passed to '@note' command [-Wdocumentation]
* @note
~~~~~^
In file included from /Users/leo/development/flutter/.pub-cache/hosted/pub.flutter-io.cn/wechat_kit-1.0.1/ios/Classes/WechatKitPlugin.m:2:
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApi.h:37:56: warning: empty paragraph passed to '@param' command [-Wdocumentation]
* @param resp具体的回应内容,是自动释放的
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApi.h:37:11: warning: parameter 'resp具体的回应内容,是自动释放的' not found in the function declaration [-Wdocumentation]
* @param resp具体的回应内容,是自动释放的
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApi.h:37:11: note: did you mean 'resp'?
* @param resp具体的回应内容,是自动释放的
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
resp
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/WechatOpenSDK/WXApi.h:178:11: warning: empty paragraph passed to '@param' command [-Wdocumentation]
* @param
~~~~~~^
7 warnings generated.
8 warnings generated.
In file included from /Users/leo/development/flutter/.pub-cache/hosted/pub.flutter-io.cn/fake_weibo-0.2.4/ios/Classes/FakeWeiboPlugin.m:2:
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/Weibo_SDK/WeiboSDK.h:153:9: warning: parameter 'mid' not found in the function declaration [-Wdocumentation]
@param mid 微博id
^~~
/Users/leo/Desktop/vhiphop/ios/Pods/Headers/Public/Weibo_SDK/WeiboSDK.h:154:9: warning: parameter 'aid' not found in the function declaration [-Wdocumentation]
@param aid 文章id
^~~
/Users/leo/development/flutter/.pub-cache/hosted/pub.flutter-io.cn/fake_weibo-0.2.4/ios/Classes/FakeWeiboPlugin.m:165:44: warning: unused variable 'sendMessageToWeiboResponse' [-Wunused-variable]
WBSendMessageToWeiboResponse * sendMessageToWeiboResponse = (WBSendMessageToWeiboResponse *) response;
^
3 warnings generated.
ld: warning: instance method 'wbsdk_stringByReplacingRange:with:' in category from /Users/leo/Desktop/vhiphop/ios/Pods/Weibo_SDK/libWeiboSDK/libWeiboSDK.a(WBSDKComposerWebViewController.o) conflicts with same method from another category
ld: warning: instance method 'wbsdk_stringByReplacingRange:with:' in category from /Users/leo/Desktop/vhiphop/ios/Pods/Weibo_SDK/libWeiboSDK/libWeiboSDK.a(WBSDKAuthorizeWebViewController.o) conflicts with same method from another category

扫码登录不能使用


I/MicroMsg.SDK.DiffDevOAuth(24554): start auth, appId = wx23*******6d03897
I/MicroMsg.SDK.GetQRCodeTask(24554): external storage available = false
D/NetworkSecurityConfig(24554): No Network Security Config specified, using platform default
D/MicroMsg.SDK.GetQRCodeTask(24554): doInBackground, url = https://open.weixin.qq.com/connect/sdk/qrconnect?appid=wx23f34add36d03897&noncestr=a23ca0e0b44b11e9b463dd78b3ac33fd&timestamp=1564657254899&scope=snsapi_userinfo&signature=0bc1f97357499e9dc1286e1dd418526d4b6faf8f, time consumed = 384(ms)
D/MicroMsg.SDK.GetQRCodeResult(24554): parse succ, save in memory, uuid = 011JUk--bFChAaUJ, appname = 自********卓, imgBufLength = 46157
D/MicroMsg.SDK.GetQRCodeTask(24554): onPostExecute, get qrcode success
D/MicroMsg.SDK.ListenerWrapper(24554): onAuthGotQrcode, qrcodeImgPath = null
D/AndroidRuntime(24554): Shutting down VM
E/AndroidRuntime(24554): FATAL EXCEPTION: main
E/AndroidRuntime(24554): Process: com.yaobao.ad, PID: 24554
E/AndroidRuntime(24554): java.lang.NullPointerException: Attempt to invoke interface method 'void com.tencent.mm.opensdk.diffdev.OAuthListener.onAuthGotQrcode(java.lang.String, byte[])' on a null object reference
E/AndroidRuntime(24554): 	at com.tencent.mm.opensdk.diffdev.a.b.onAuthGotQrcode(Unknown Source:49)
E/AndroidRuntime(24554): 	at com.tencent.mm.opensdk.diffdev.a.d.onPostExecute(Unknown Source:22)
E/AndroidRuntime(24554): 	at android.os.AsyncTask.finish(AsyncTask.java:695)
E/AndroidRuntime(24554): 	at android.os.AsyncTask.access$600(AsyncTask.java:180)
E/AndroidRuntime(24554): 	at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
E/AndroidRuntime(24554): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(24554): 	at android.os.Looper.loop(Looper.java:201)
E/AndroidRuntime(24554): 	at android.app.ActivityThread.main(ActivityThread.java:6847)
E/AndroidRuntime(24554): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24554): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
E/AndroidRuntime(24554): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

微信分享图片问题

微信分享图片可以分享网络图片吗?还是说只能先下载到本地,再分享出去?

调起小程序

调起小程序的方法有没有其它的参数可以调起测试版?现在调起的都是正式版,每一次都要上线才能测测试。。

ios 无法使用

提示:
-canOpenURL: failed for URL: "weixinULAPI://" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
已经配置了 URL Types和LSApplicationQueriesSchemes

微信支付失败-1

日志打印出来这个
AppLock checkAppLockState locked:false verifying:false pkgName = com.jiuban.chatlive isInMultiWindowMode:false showWhenLocked:false

请问是什么原因呀 前辈

更新到1.1.0版本后,微信支付完成后无法获得回调

此前使用旧版本,0.3.4,直接连接真机调试,微信支付完成后可以获得回调。但是iOS和Android打包之后均无法进入回调。
后更新到1.1.0版本,真机调试也无法进入回调了。现在很惆怅,麻烦作者老哥帮忙看一下。

  StreamSubscription<WechatPayResp> _pay;

  Wechat _wechat = Wechat()
    ..registerApp(
      appId: WECHAT_APPID,
      universalLink: WECHAT_UNIVERSAL_LINK,
    );

  @override
  void initState() {
    super.initState();
    _pay = _wechat.payResp().listen(_listenPay);
  }

  void _listenPay(WechatPayResp resp) {
    // 无法进入这里的回调
    showToast("正在查询支付结果");
    if (resp.errorCode == 0) {
      _checkPayResult();
    } else {
      showToast('支付失败');
    }
  }

  @override
  void dispose() {
    _pay?.cancel();
    super.dispose();
  }

这里的Flutter版本虽然显示unknown,但当初确实是从官网下载的stable版本。
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.12.13+hotfix.8, on Mac OS X 10.15.5 19F101,
locale zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 4.0)
[✓] VS Code (version 1.46.1)
[!] Proxy Configuration
! NO_PROXY is not set
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

与 uni_links 冲突?

请问各位大佬有遇过这个难题吗?
同时使用 wechat_kit 与 uni_links, wecht_kit 就监听不到返回值...

添加了微信分享功能,appstore审核不通过

只添加了微信分享功能,但是appstore审核说包含支付相关功能,上架失败,
我们检查发现有可能是sdk里面包含pay相关的代码,让他们检查出来了
大佬能不能更新一版只包含分享功能的包呀?

这个插件完美啊

看例子以为没有获取用户的方法,没想到你都写了,比那个fluwx好多了,star太少

微信未启动问题

想问一下大佬,微信登录的时候,如果微信未启动就会调用失败,想问一下有什么能在后台启动微信并跳转去授权的方法吗?一只萌新路过

Android 分享较大尺寸GIF 时失败

咳~ 又是我。
同样一张GIF,iOS可以分享。Android 分享失败。其他较小GIF 没问题。

D/MicroMsg.SDK.WXMsgImplComm( 7554): pass
I/MicroMsg.SDK.WXApiImplV10( 7554): sendReq, req type = 2
I/MicroMsg.SDK.WXApiImplV10( 7554): getTokenFromWX token is OpenSdkToken@1556183764414
D/MicroMsg.SDK.MMessageAct( 7554): send, targetPkgName = com.tencent.mm, targetClassName = com.tencent.mm.plugin.base.stub.WXEntryActivity
E/JavaBinder( 7554): !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1908288)
E/MicroMsg.SDK.MMessageAct( 7554): send fail, ex = Failure from system

如果在app里面分享微信小程序

需求是这样:

有app, 也有app 对应的小程序
在app里面,把内容分享给微信好友是,期望是分享的是微信小程序

在 fake_wechat 的示例代码里面,没有找到,目前支持该功能嘛?

微信发送请求到第三方应用时(例如由小程序打开应用)无法获取参数

根据微信所提供 Android demo 中 WXEntryActivity 所示,微信发送请求应当在 onReq() 回调中监听,相关代码:

> // 微信发送请求到第三方应用时,会回调到该方法
> @Override
> public void onReq(BaseReq req) {
> 	switch (req.getType()) {
> 	case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
> 		goToGetMsg();		
> 		break;
> 	case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
> 		goToShowMsg((ShowMessageFromWX.Req) req);
> 		break;
> 	default:
> 		break;
> 	}
> }

其中,goToShowMsg() 用来获取传递给应用的参数:

private void goToShowMsg(ShowMessageFromWX.Req showReq) {
	WXMediaMessage wxMsg = showReq.message;		
	WXAppExtendObject obj = (WXAppExtendObject) wxMsg.mediaObject;
	
	StringBuffer msg = new StringBuffer(); // 组织一个待显示的消息内容
	msg.append("description: ");
	msg.append(wxMsg.description);
	msg.append("\n");
	msg.append("extInfo: ");
	msg.append(obj.extInfo);
	msg.append("\n");
	msg.append("filePath: ");
	msg.append(obj.filePath);
	
	Intent intent = new Intent(this, ShowFromWXActivity.class);
	intent.putExtra(Constants.ShowMsgActivity.STitle, wxMsg.title);
	intent.putExtra(Constants.ShowMsgActivity.SMessage, msg.toString());
	intent.putExtra(Constants.ShowMsgActivity.BAThumbData, wxMsg.thumbData);
	startActivity(intent);
	finish();
}

当前代码在此处未作处理,所以无法获取参数。希望作者可以完善此处,十分感激。

Duplicate class with ShareSDK

与ShareSDK同时使用时:

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class com.tencent.connect.UnionInfo found in modules jetified-ShareSDK-QQ-Core-3.6.9.jar (cn.sharesdk:ShareSDK-QQ-Core:3.6.9) and jetified-open_sdk_r53890096d0e731f134f448c1286e48c2043b484b_lite.jar (open_sdk_r53890096d0e731f134f448c1286e48c2043b484b_lite.jar)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.