作为简单背景应用程序的概念证明,我使用Graph API Explorer为我的应用程序创建一个访问令牌,以便将内容发布到我维护的页面的墙上.它工作正常.然而,自然地,令牌到期.
所以现在我正在尝试让后台应用程序在每次运行时自动请求新的页面访问令牌.我在找到如何做到这一点的具体定义方面遇到了很多麻烦.关于Facebook和访问令牌的信息并不缺乏,但似乎没有任何东西可以证明如何将后台应用程序发布到页面上.(不发布到用户的墙上,不向用户显示登录对话框,因为它是后台应用程序等)
通过读取Web请求到此URL的响应,我可以轻松地在代码中获取访问令牌:
https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id={MY_APP_ID}&client_secret={MY_APP_SECRET}
Run Code Online (Sandbox Code Playgroud)
当然,当尝试发布到页面的墙上时,"访问令牌"不起作用.它表示用户尚未授权应用程序执行此操作.我正在执行的操作非常简单:
var client = new FacebookClient(GetFacebookAccessToken());
dynamic parameters = new ExpandoObject();
parameters.message = "this is a test";
dynamic result = client.Post("{MY_PAGE_ID}/feed", parameters);
Run Code Online (Sandbox Code Playgroud)
我在一些地方读过,我需要使用第一个访问令牌发出第二个请求来获取页面访问令牌.但我似乎无法找到如何做到这一点的例子.
有人可以为我阐明这一点吗?
编辑: 我已经向我描述了我需要获取一个长期存在的用户访问令牌,并使用它来获取页面访问令牌.理论是所述页面访问令牌不会过期.然而,我不清楚的是如何实现这一点.
我已经阅读了描述弃用的页面offline_access,以及描述服务器端访问的页面.但是,我显然是在误解某些东西.在前者中,它引用后者来获得适当的令牌.然而,后者包括用于向用户呈现登录,让他们接受许可以及使用来自该登录的响应的步骤.
作为一个无人值守的后台进程,向用户(可能是我)提出任何问题并不是一个真正的选择.我也被告知我不能从我的浏览器一次性请求获取访问令牌,因为根据定义,这是客户端交互而不是必要的服务器端流程的一部分.(对我来说,如果一个RESTful请求来自一个Web浏览器而不是来自一个应用程序,那么该服务似乎很奇怪,但我对OAuth或Facebook API不太熟悉,无法真正进行该调用.)
因此,如果我可以执行一些手动步骤来获取应用程序发布到Facebook页面的永久访问令牌,那么这些步骤是什么?相反,如果我可以在应用程序中执行一些自动化步骤以在每次运行时获取访问权限,那么这些步骤是什么?
(从应用程序中再进行一些API调用会将一两个运行时间添加到另外一天的进程中,因此对我采取哪种方法没有任何区别.)
这有什么问题?如果$ forwardformat不为空,则运行"if语句"中的代码,但如果$ forwardformat为空,则"else"代码不会运行.有任何想法吗?!
while ($row = mysql_fetch_array($forwardresult)) {
$forward = $row["id"];
$forwardformat = str_replace(" ","",$forward);
if (!empty($forwardformat)) {
echo 'Exploring moves us <a href="casestudy.php?id=';
echo $forwardformat;
echo '">forward</a>';
}
else {
echo "forward";
}
}
Run Code Online (Sandbox Code Playgroud) 我需要用来preg_match检查只有a-z0-9.使用(包括句号(.)).我不想替换任何东西.我的问题是它没有注意到字符串开头的空格.
此外,如果有人知道如何检查连续没有两个完整的停止,我将非常感激.
到目前为止我所拥有的:
("/[^a-z0-9.]+$/",$request)
Run Code Online (Sandbox Code Playgroud)
谢谢 !
我制作了这个脚本,在mysql数据库中添加了有关谁访问过我的网站的信息.
session_start()
if(!isset($_SESSION['log'])) {
$ip=$_SERVER['REMOTE_ADDR'];
$date=date("Y-m-d H:i:s");
$browser=$_SERVER['HTTP_USER_AGENT'];
$browser=mysql_real_escape_string($browser);
if(isset($_SESSION['nickname'])) {
$user=$_SESSION['nickname'];
} else {
$user="unknownABCD1234";
}
$insert=mysql_query("INSERT INTO views (ip, user, date, browser) VALUES ('$ip', '$user', '$date', '$browser')", $mydb);
$_SESSION['log']='logged';
$_SESSION['iplog']=$ip;
$_SESSION['datelog']=$date;
}
Run Code Online (Sandbox Code Playgroud)
问题是它多次为每个用户添加引用(但有时不是,有时候).例如,我在我的数据库信息中找到如下:
ID: 1
IP : 95.108.244.252
USER : unknownABCD1234
DATE : 2010-08-07 01:16:00
BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
ID : 2
IP : 95.108.244.252
USER : unknownABCD1234
DATE : 2010-08-07 01:16:04
BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
Run Code Online (Sandbox Code Playgroud)
那是不可能的吗?我确定会议期间超过4秒:)会发生什么?
我试图只列出目录中的jpg文件.有200多个,但使用下面的代码,只有大约100个列出.我已经尝试了不同的变体来提取文件扩展名,但这是唯一有效的:$sub = substr($file, -3);
谁能告诉我为什么所有文件都没有出现?
完整来源:
<?php
require('index.inc');
$page = new buildpage();
$page->buildHeader();
$currentdir = '/home/tim/Documents/Web/';
$dir = opendir($currentdir);
echo "<ol>";
while ($file = readdir($dir)){
$file = readdir($dir);
$sub = substr($file, -3);
$ext = "jpg";
if (strcasecmp($sub, $ext) == 0) {
echo "<li>$file</li>";
}
}
echo "</ol>";
?>
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的查询有点问题,当我硬编码查询中的值时它的工作,但当我使用PHP变量没有任何东西被检索,我检查了很多东西,包括查询,数据库值得说我通过POST从表单中获取变量,并检查我是否正在获取它们但是当我在查询中使用它们时它们不能正常工作:S
这是我的代码..PLZ我做错了什么?!!!!!!!!!!!
<?php
$email = $_POST ['emailEnter'] ;
$password = $_POST ['passwordEnter'];
$connection = mysql_connect('localhost','root','') ;
$db_selected = mysql_select_db("lab5" , $connection) ;
$query = 'select * From user where email="$email" and password="$password" ' ;
$result = mysql_query ($query , $connection);
while($row=mysql_fetch_array($result))
{
echo $row['name'];
}
mysql_close($connection);
?>
Run Code Online (Sandbox Code Playgroud) 大家好,我在一个目录管理员工作.
我有2个班:
第一个:来自XMl文件的xsd.exe生成器第二个:来自WebService代理类的gor
这2个类是相同的(相同的属性),唯一的是他们被2个不同的团队开发:例如:
public partial class CatalogPackageAMSApp_Data {
private string appField;
private byte nameField;
private string valueField;
}
public partial class AppData {
private string appField;
private string nameField;
private string valueField;
}
Run Code Online (Sandbox Code Playgroud)
我该如何施展,影响,...这两个类彼此.
最好的祝福
我有任何进一步的解释
所以,我想知道如何通过在C#中使用foreach循环将数组的整个内容写入文本框.我的代码目前看起来像这样:
我生成了一系列存储在数组中的随机数:
int[] iData;
Run Code Online (Sandbox Code Playgroud)
现在我想通过使用foreach循环将此数组中存储的数据写入文本框:
foreach (int myInt in iData)
{
txtListing.Text = myInt.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这只会将数组中最后生成的数字写入文本框,但我的问题是如何将所有数字写入tekstbox.
我只知道,如何使用列表框和forLoop执行此操作.但有没有办法可以用文本框和foreach循环来完成?
在jQuery中,有一个选项可以将AJAX调用设置为同步:
async: false
Run Code Online (Sandbox Code Playgroud)
有没有办法在jqGrid插件中实现这一点?
退后一步,我试图解决的实际问题(并且可能有更好的方法)是在3级嵌套网格结构上方添加"全部展开"按钮.我最初的方法就是:
$('#buttonExpandAll').click(function() {
// Get all the rows in the top grid
var rows = $('#mainGrid').getRowData();
for (var i = 0; i < rows.length; i++) {
// Expand the sub-grid for this row
$('#mainGrid').expandSubGridRow(rows[i].Id);
// Get all the rows for the sub-grid
// NOTE: This isn't working because it the data hasn't asynchronously loaded yet
var subrows = $('#mainGrid_' + rows[i].Id + '_t').getRowData();
for (var j = 0; j < subrows.length; j++) {
// Expand the …Run Code Online (Sandbox Code Playgroud) 我试过这个:
function a_function(){
var data = "information";
});
console.log(data);
Run Code Online (Sandbox Code Playgroud)