Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 大量API/框架mashup问题(oAuth、Facebook、Twitter、CodeIgniter)_Php_Facebook_Codeigniter_Get_Uri - Fatal编程技术网

Php 大量API/框架mashup问题(oAuth、Facebook、Twitter、CodeIgniter)

Php 大量API/框架mashup问题(oAuth、Facebook、Twitter、CodeIgniter),php,facebook,codeigniter,get,uri,Php,Facebook,Codeigniter,Get,Uri,我正在做的一个项目有一个问题(很多,但目前为止) 这是一个在CodeIgniter上运行的PHP项目 这是一个想要使用oAuth Twitter授权的Facebook应用程序 CodeIgniter默认情况下会清除$\u GET数组,因为它使用URI来控制MVC内容。您可以关闭此选项以访问GET数组,并使用类似example.com/?c=MyController&m=MyMethod的字符串来绕过此问题 Facebook要求您为应用程序页面定义根url。这意味着对我来说: apps.faceb

我正在做的一个项目有一个问题(很多,但目前为止)

  • 这是一个在CodeIgniter上运行的PHP项目
  • 这是一个想要使用oAuth Twitter授权的Facebook应用程序
  • CodeIgniter默认情况下会清除$\u GET数组,因为它使用URI来控制MVC内容。您可以关闭此选项以访问GET数组,并使用类似
    example.com/?c=MyController&m=MyMethod
    的字符串来绕过此问题

    Facebook要求您为应用程序页面定义根url。这意味着对我来说:

    apps.facebook.com/MyApplication == http://www.myownserver.com/index.php/c=SignIn&
    
    我用这种方式设置它,以便它可以使用$\u GET数组。当Twitter(我假设任何其他实现)使用oAuth时,它会返回到您想要的任何URL,并在末尾附加
    ?token=250937602736037609273609327
    ,因此我最终在

    app.facebook.com/MyApplication/?token=302870637602746094276097
    
    这看起来不错,但实际上相当于

    http://www.myownserver.com/index.php/c=SignIn&?token=302870637602746094276097
    
    所以问题是URL中不能有两个问号;第二个需要是一个符号(&),以将更多的值串在一起。错误消息是可预测的
    不允许的关键字符。

    有人能想出一个好的/聪明的方法来解决我的这个问题吗?我真的不想放弃这个设置中的CodeIgniter部分,因为它有一个很好的DB抽象和很好的助手,我已经在上面写了很多代码


    谢谢你的建议。

    Hm.你能用mod_rewrite和QSA标志做些聪明的事情来自动把它串起来吗?也就是说,重新编写你的“根url”,而不是在facebook上加上符号?

    也许我不完全理解你的问题,但你不能将
    &
    添加到
    $config['allowed\u uri\u chars']
    在application/config/config.php文件中?

    您可以扩展输入库以允许查询字符串和漂亮的URL


    查看Twitter库,看看他是如何做到的。

    问题是GET数组的正确形式看起来像“?field=value&field2=value2&field3=value3”。符号变为“?&&&&&…”,这将导致“?&&&&&&&&”,因此它知道符号是可以的,但问题是URL中有两个问号。Dav是正确的,最简单的方法是在codeigniter的URL解析器处理URL之前重写URL(事实上,使用mod_rewrite,您应该能够同时重写url和查询字符串)